aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Pronchery <pierre@freebsdfoundation.org>2023-05-04 21:51:47 +0000
committerEd Maste <emaste@FreeBSD.org>2023-05-05 15:12:07 +0000
commitcf3e3d5bd0a1fae39c74c7db5a4e8b10732d0766 (patch)
tree4c48b81a8fc4921e6e584787f31f0b80af5bcf32
parentc6342fe2e90510d8d2296423f2ca92818a7b3d18 (diff)
downloadsrc-vendor/ldns.tar.gz
src-vendor/ldns.zip
-rw-r--r--Changelog195
-rw-r--r--Makefile.in622
-rw-r--r--README5
-rw-r--r--README-Travis.md274
-rw-r--r--aclocal.m44
-rw-r--r--acx_nlnetlabs.m4126
-rw-r--r--ax_pkg_swig.m414
-rw-r--r--ax_python_devel.m439
-rw-r--r--buffer.c2
-rwxr-xr-xconfig.guess1646
-rwxr-xr-xconfig.sub2649
-rwxr-xr-xconfigure9478
-rw-r--r--configure.ac256
-rw-r--r--contrib/DNS-LDNS/Changes8
-rw-r--r--contrib/DNS-LDNS/LICENSE4
-rw-r--r--contrib/DNS-LDNS/MANIFEST7
-rw-r--r--contrib/DNS-LDNS/META.yml35
-rw-r--r--[-rwxr-xr-x]contrib/DNS-LDNS/Makefile.PL658
-rw-r--r--contrib/DNS-LDNS/README2
-rw-r--r--contrib/DNS-LDNS/const-c.inc2852
-rw-r--r--contrib/DNS-LDNS/const-xs.inc90
-rw-r--r--contrib/DNS-LDNS/constants.PL280
-rw-r--r--contrib/DNS-LDNS/dist.ini18
-rw-r--r--contrib/DNS-LDNS/fallback/const-c.inc2798
-rw-r--r--contrib/DNS-LDNS/fallback/const-xs.inc90
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecDataChain.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecName.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRSets.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRs.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecTrustTree.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecZone.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/GC.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/Key.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/KeyList.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/Packet.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/RBNode.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/RBTree.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/RData.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/RR.pm11
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/RRList.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/Resolver.pm2
-rw-r--r--contrib/DNS-LDNS/lib/DNS/LDNS/Zone.pm2
-rw-r--r--contrib/android/15-android.conf37
-rwxr-xr-xcontrib/android/bootstrap_ldns.sh55
-rwxr-xr-xcontrib/android/install_ndk.sh60
-rwxr-xr-xcontrib/android/install_openssl.sh44
-rwxr-xr-xcontrib/android/install_tools.sh26
-rwxr-xr-xcontrib/android/setenv_android.sh203
-rw-r--r--[-rwxr-xr-x]contrib/build-solaris.sh0
-rw-r--r--contrib/ios/15-ios.conf41
-rwxr-xr-xcontrib/ios/bootstrap_ldns.sh55
-rwxr-xr-xcontrib/ios/install_openssl.sh52
-rwxr-xr-xcontrib/ios/install_tools.sh9
-rw-r--r--contrib/ios/openssl.patch48
-rwxr-xr-xcontrib/ios/setenv_ios.sh274
-rw-r--r--contrib/ldnsx/README4
-rw-r--r--contrib/ldnsx/ldnsx.py18
-rw-r--r--contrib/ldnsx/source/index.rst4
-rw-r--r--contrib/python/Changelog2
-rw-r--r--contrib/python/docs/source/examples/example1.rst2
-rw-r--r--contrib/python/docs/source/examples/example8.rst6
-rw-r--r--contrib/python/docs/source/install.rst2
-rwxr-xr-xcontrib/python/examples/test_buffer.py2
-rwxr-xr-xcontrib/python/examples/test_dname.py2
-rwxr-xr-x[-rw-r--r--]contrib/python/examples/test_rr.py0
-rw-r--r--contrib/python/ldns.i25
-rw-r--r--contrib/python/ldns_buffer.i2
-rw-r--r--contrib/python/ldns_dname.i4
-rw-r--r--contrib/python/ldns_dnssec.i2
-rw-r--r--contrib/python/ldns_key.i6
-rw-r--r--contrib/python/ldns_packet.i4
-rw-r--r--contrib/python/ldns_rdf.i29
-rw-r--r--contrib/python/ldns_resolver.i6
-rw-r--r--contrib/python/ldns_rr.i20
-rw-r--r--contrib/python/ldns_zone.i8
-rw-r--r--dane.c65
-rw-r--r--dname.c2
-rw-r--r--dnssec.c91
-rw-r--r--dnssec_sign.c319
-rw-r--r--dnssec_verify.c208
-rw-r--r--dnssec_zone.c853
-rw-r--r--doc/API-header.xml6
-rw-r--r--doc/API.xml10
-rw-r--r--doc/CodingStyle2
-rw-r--r--doc/dns-lib-implementations2
-rwxr-xr-xdoc/doxyparse.pl6
-rw-r--r--doc/function_manpages6
-rw-r--r--doc/ldns_manpages470
-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
-rw-r--r--doc/tutorial1_mx.dox2
-rw-r--r--drill/ChangeLog.22-nov-20056
-rw-r--r--drill/Makefile.in119
-rw-r--r--drill/chasetrace.c4
-rw-r--r--drill/config.h.in293
-rwxr-xr-xdrill/configure6726
-rw-r--r--drill/configure.ac276
-rw-r--r--drill/dnssec.c16
-rw-r--r--drill/drill.1.in13
-rw-r--r--drill/drill.c219
-rw-r--r--drill/drill.h1
-rw-r--r--drill/error.c2
-rw-r--r--drill/securetrace.c56
-rw-r--r--duration.c143
-rw-r--r--edns.c436
-rw-r--r--error.c31
-rw-r--r--examples/Makefile.in207
-rw-r--r--examples/config.h.in389
-rwxr-xr-xexamples/configure7336
-rw-r--r--examples/configure.ac477
-rw-r--r--examples/ldns-compare-zones.117
-rw-r--r--examples/ldns-compare-zones.c115
-rw-r--r--examples/ldns-dane.c53
-rw-r--r--examples/ldns-dpa.16
-rw-r--r--examples/ldns-dpa.c48
-rw-r--r--examples/ldns-gen-zone.c9
-rw-r--r--examples/ldns-key2ds.c1
-rw-r--r--examples/ldns-keyfetcher.c9
-rw-r--r--examples/ldns-keygen.110
-rw-r--r--examples/ldns-keygen.c79
-rw-r--r--examples/ldns-notify.110
-rw-r--r--examples/ldns-notify.c112
-rw-r--r--examples/ldns-nsec3-hash.c5
-rw-r--r--examples/ldns-read-zone.12
-rw-r--r--examples/ldns-read-zone.c2
-rw-r--r--examples/ldns-resolver.12
-rw-r--r--examples/ldns-resolver.c4
-rw-r--r--examples/ldns-rrsig.12
-rw-r--r--examples/ldns-rrsig.c8
-rw-r--r--examples/ldns-signzone.162
-rw-r--r--examples/ldns-signzone.c571
-rw-r--r--examples/ldns-test-edns.c2
-rw-r--r--examples/ldns-testns.14
-rw-r--r--examples/ldns-testns.c85
-rw-r--r--examples/ldns-testpkts.c11
-rw-r--r--examples/ldns-verify-zone.1.in13
-rw-r--r--examples/ldns-verify-zone.c285
-rw-r--r--examples/ldns-walk.c11
-rw-r--r--examples/ldns-zsplit.c2
-rw-r--r--examples/ldnsd.c2
-rw-r--r--host2str.c1192
-rw-r--r--host2wire.c63
-rwxr-xr-xinstall-sh181
-rw-r--r--keys.c253
-rw-r--r--ldns/buffer.h31
-rw-r--r--ldns/common.h.in3
-rw-r--r--ldns/config.h.in199
-rw-r--r--ldns/dane.h4
-rw-r--r--ldns/dname.h2
-rw-r--r--ldns/dnssec.h52
-rw-r--r--ldns/dnssec_sign.h16
-rw-r--r--ldns/dnssec_verify.h6
-rw-r--r--ldns/dnssec_zone.h14
-rw-r--r--ldns/edns.h272
-rw-r--r--ldns/error.h14
-rw-r--r--ldns/host2str.h38
-rw-r--r--ldns/host2wire.h15
-rw-r--r--ldns/keys.h60
-rw-r--r--ldns/ldns.h1
-rw-r--r--ldns/net.h.in63
-rw-r--r--ldns/packet.h49
-rw-r--r--ldns/parse.h38
-rw-r--r--ldns/radix.h4
-rw-r--r--ldns/rbtree.h2
-rw-r--r--ldns/rdata.h28
-rw-r--r--ldns/resolver.h6
-rw-r--r--ldns/rr.h21
-rw-r--r--ldns/rr_functions.h4
-rw-r--r--ldns/sha1.h9
-rw-r--r--ldns/sha2.h27
-rw-r--r--ldns/str2host.h90
-rw-r--r--ldns/update.h2
-rw-r--r--ldns/util.h.in9
-rw-r--r--ldns/wire2host.h8
-rw-r--r--ldns/zone.h6
-rw-r--r--libdns.doxygen.in (renamed from libdns.doxygen)415
-rwxr-xr-xltmain.sh219
-rw-r--r--m4/ax_config_feature.m46
-rw-r--r--m4/ax_have_poll.m44
-rw-r--r--m4/libtool.m431
-rwxr-xr-xmakewin.sh263
-rw-r--r--net.c108
-rw-r--r--packaging/fedora/ldns.spec4
-rwxr-xr-xpackaging/ldns-config.in17
-rw-r--r--packet.c113
-rw-r--r--parse.c97
-rw-r--r--radix.c5
-rw-r--r--rbtree.c2
-rw-r--r--rdata.c8
-rw-r--r--resolver.c22
-rw-r--r--rr.c199
-rw-r--r--rr_functions.c8
-rw-r--r--sha1.c3
-rw-r--r--sha2.c21
-rw-r--r--str2host.c900
-rw-r--r--tsig.c16
-rw-r--r--util.c33
-rw-r--r--wire2host.c8
-rw-r--r--zone.c80
668 files changed, 29670 insertions, 30348 deletions
diff --git a/Changelog b/Changelog
index 0bd3658e767d..aba41c88c5c8 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,166 @@
+1.8.3 2022-08-15
+ * bugfix #183: Assertion failure with OPT record without rdata.
+ This caused packet creation with only a DO bit (for DNSSEC OK)
+ to crash. Thanks Anand Buddhdev and others for reporting this
+ so quickly.
+ * Fix for syntax error in pyldns
+
+1.8.2 2022-08-12
+ * bugfix #147: Allow for tabs in whitespace before quoted rdata
+ fields. Thanks Felipe Gasper
+ * bugfix #149: Add some missing [out] annotations to doxygen
+ parameters. Thanks aldot.
+ * Fix build error on Solaris 10 with inet_ntop redeclaration error.
+ * Fix -U flag with ldns-signzone. Thanks Ulrich and Jonathan
+ * Enable compile of SVCB and HTTPS support by default.
+ * bugfix #179: Free line memory even if zone file parsing fails
+ Thanks Claudius Zingerli
+ * bugfix #166: Grow buffer when writing chars and fixed size
+ strings when converting to presentation format, preventing
+ potential assersion errors.
+ * bugfix #46: Print network errors when secure tracing.
+ Thanks reedjc
+ * EDNS0 Option handling and conversion into presentation format.
+ * bugfix #145: ldns-verify-zone should not call occluded records
+ glue. Thanks Habbie
+
+1.8.1 2021-12-03
+ * bugfix #146: ldns-1.7.1 had soname 3.0, so ldns-1.8.x soname
+ needs to larger. Thanks Leah Neukirchen & Felipe Gasper
+ * Undo PR#123 fix ldns.pc installation when building out-of-source
+ Thanks Axel Xu
+
+1.8.0 2021-11-26
+ * bugfix #38: Print "line" before line number when printing
+ zone parse errors. Thanks Petr Špaček.
+ * bugfix: Revert unused variables in ldns-config removal patch.
+ * bugfix #50: heap Out-of-bound Read vulnerability in
+ rr_frm_str_internal reported by pokerfacett.
+ * bugfix #51: Heap Out-of-bound Read vulnerability in
+ ldns_nsec3_salt_data reported by pokerfacett.
+ * Fix memory leak in examples/ldns-testns handle_tcp routine.
+ * Detect fixed time memory compare for openssl 0.9.8.
+ * Fix compile warning by variable initialisation for older gcc.
+ * Fix #92: ldns-testns.c:429:15: error: 'fork' is unavailable: not
+ available on tvOS.
+ * Fix for #93: fix packaging/libldns.pc Makefile rule.
+ * ZONEMD support in ldns-signzone and ldns-verify-zone
+ * ldns-testns can answer several queries over one tcp connection,
+ if they arrive within 100msec of each other.
+ * Fix so that ldns-testns does not leak sockets if the read fails.
+ * SVCB and HTTPS draft rrtypes.
+ Enable with --enable-rrtype-svcb-https.
+ * bugfix #117: Assertion failure with DNSSEC validating of
+ non existence of RR types at the root. Thanks ZjYwMj
+ * Set NSEC(3) ttls to the minimum of the MINIMUM field of the SOA
+ record and the TTL of the SOA itself. draft-ietf-dnsop-nsec-ttl
+ * bugfix #119: Let example tools read longer RR's than
+ LDNS_MAX_LINELEN
+ * Add SVCPARAMS to python ldns_rdf_type2str function.
+ * PR #134 Miscellaneous spelling fixes. Thanks jsoref!
+ * Fix that ldns-read-zone and ldns_zone_new_frm_fp_l properly return
+ the $INCLUDE not implemented error.
+ * Fix that ldns-read-zone and ldns_zone_new_frm_fp_l count the line
+ number for an empty line after a comment.
+ * Fix #135: Fix compile with OpenSSL-3.0.0-beta2.
+ * PR #107: Added ldns_pkt2buffer_wire_compress() to make dname
+ compression optional when converting packets to wire format.
+ Thanks Eli Lindsey
+ * Option to ldns-keygen to create symlinks with known names
+ (i.e. without the key id) to the created files.
+ Thanks Andreas Schulze
+ * Fix #121: Correct handling of centimetres by LOC parser.
+ Thanks Felipe Gasper
+ * PR #126: Link with libldns.la in Makefile.in.
+ Thanks orbea
+ * PR #127: Added option -Q to drill to give short answer.
+ Thanks niknah
+ * PR #133: Update m4 files for python modules.
+ Thanks Petr Menšík
+ * Bufix CAA value fields may be empty: Thanks Robert Mortimer
+ * PR #108: Fix for ldns-compare-zones net detecting when first zone
+ has a RRset that shrinks from two to one RRs, or grows from one
+ to two RRs. Thanks Emilio Caballero
+ * Fix #131: Drill sig chasing breaks with gcc-11 and
+ strict-aliasing. Thanks Stanislav Levin
+ * Fix #130: Unless $TLL is defined, ttl defaults to the last
+ explicitly stated value. Thanks Benno
+ * Fix #48: Missing UNSIGNED legend with drill. Thanks reedjc
+ * Fix #143: EVP_PKEY_base_id became a macro with OpenSSL > 3.0
+ Thanks Daniel J. Luke
+ * Let ldns-signzone warn for high NSEC3 iteration counts.
+ Thanks Andreas Schulze
+
+1.7.1 2019-07-26
+ * bugfix: Manage verification paths for OpenSSL >= 1.1.0
+ Thanks Marco Davids
+ * bugfix #4106: find the SDK on MacOS X <= 10.6
+ Thanks Bill Cole
+ * bugfix #4155: ldns-config contains never used variables
+ Thanks Petr Menšík
+ * bugfix #4221: drill -x crashes with malformed IPv4 address
+ Thanks Oleksandr Tymoshenko
+ * bugfix #3437: CDS & CDNSKEY RRsets should be signed with the KSK
+ Thanks Tony Finch
+ * bugfix #1566, #1568, #1569, #1570: Potential NULL Dereferences
+ Thanks Bill Parker
+ * bugfix #1260: Anticipate strchr returning NULL on unfound char
+ Thanks Stephan Zeisberg
+ * bugfix #1257: Free after reallocing to 0 size (CVE-2017-1000232)
+ Thanks Stephan Zeisberg
+ * bugfix #1256: Check parse limit before t increment (CVE-2017-1000231)
+ Thanks Stephan Zeisberg
+ * bugfix #1245: Only one signature per RRset needs to be valid with
+ ldns-verify-zone. Thanks Emil Natan.
+ * ldns-notify can use all supported hash algorithms with -y.
+ * bugfix #1209: make install ldns.pc file
+ Thanks Oleksandr Natalenko
+ * bugfix #1218: Only chase DS if signer is parent of owner.
+ Thanks Emil Natan
+ * bugfix #617: Retry WKS service and protocol names lower case.
+ Thanks Siali Yan
+ * Spelling errors in binaries and man pages
+ Thanks Andreas Schulze
+ * removed duplicate condition in ldns_udp_send_query.
+ * ldns_wire2pkt: fix null pointer dereference if pkt allocation fails
+ and fix memory leak with more EDNS sections
+ Thanks Jan Vcelak
+ * bugfix #1399: ldns_pkt2wire() Python binding is broken.
+ Thanks James Raftery
+ * ED25519 and ED448 support. Default is to autodetect support in
+ OpenSSL. Disable with --disable-ed25519 and --disable-ed448.
+ * ldns-notify: can have IPv6 address as argument.
+ * Fix time sensitive TSIG compare vulnerability.
+ * Fix that ldns-testns ignores sigpipe.
+ * Fix that ldns-notify sets the query RR as question RR, this
+ removes the wrong TTL and 0 rdata from the packet printout.
+ * Allow -T flag to be used together with drill -x
+ * Python bindings compile with swig 4.0
+ Thanks Jitka Plesníková
+ * bugfix #4248: drill -DT fails for CNAME domain
+ Thanks Thom Wiggers
+ * bugfix #4214: Various fixes and leaks found by coverity.
+ Thanks Petr Menšík
+ * Feature #3394: An -I option to ldns-notify to specify a source
+ IP address to send to notify from. Thanks Geert Hendrickx
+ * Bugfix #279: New API functions ldns_udp_connect2,
+ ldns_tcp_connect2, ldns_udp_bgsend2 and ldns_tcp_bgsend2,
+ that return -1 on failure and allow socket number 0
+ to be returned too. Thanks Joerg Sonnenberger
+ * Bugfix #1447: More verbose reporting of chasing problems with
+ ldns-verify-zone. Thanks Stephane Guedon
+ * OpenSSL engine support with ldns-signzone.
+ See also https://penzin.net/ldns-signzone/
+ Many thanks Vadim Penzin.
+ * Various improvements found with shellcheck.
+ Thanks Jeffrey Walton
+ * PR #36 Update manpage of ldns-notify to mention algorithm
+ support with TSIG. Thanks Anand Buddhdev
+ * Compile warnings with signed char input to to_lower()
+ and is_digit() with NetBSD. Thanks Håvard Eidnes
+ * Missing Makefile.PL in DNS-LDNS perl module contribution.
+ Thanks Jaap Akkerhuis
+
1.7.0 2016-12-20
* Fix lookup of relative names in ldns_resolver_search.
* bugfix #548: Double free for answers > 4096 in ldns_resolver_send_pkt
@@ -98,7 +261,7 @@
Thanks William King
* Use OpenSSL DANE functions for verification (unless explicitly
disabled with --disable-dane-ta-usage).
- * Bumb .so version
+ * Bump .so version
* Include OPENPGPKEY RR type by default
* rdata processing for SMIMEA RR type
* Fix crash in displaying TLSA RR's.
@@ -168,7 +331,7 @@
* bugfix #505: Manpage and usage output fixes (Thanks Tomas Hozza)
* Adjust ldns_sha1() so that the input data is not modified (Thanks
Marc Buijsman)
- * Messages to stderr are now off by default and can be reenabled with
+ * Messages to stderr are now off by default and can be re-enabled with
the --enable-stderr-msgs configure option.
1.6.16 2012-11-13
@@ -197,7 +360,7 @@
in sync.
* Let ldns_pkt_push_rr now return false on (memory) errors.
* Make buffer_export comply to documentation and fix buffer2str
- * Various improvements and fixes of pyldns from Katel Slany
+ * Various improvements and fixes of pyldns from Karel Slany
now documented in their own Changelog.
* bugfix: Make ldns_resolver_pop_nameserver clear the array when
there was only one.
@@ -236,7 +399,7 @@
* bugfix #433: Allocate rdf using ldns_rdf_new in ldns_dname_label
* bugfix #432: Use LDNS_MALLOC & LDNS_FREE i.s.o. malloc & free
* bugfix #431: Added error message for LDNS_STATUS_INVALID_B32_EXT
- * bugfix #427: Explicitely link ssl with the programs that use it.
+ * bugfix #427: Explicitly link ssl with the programs that use it.
* Fix reading \DDD: Error on values that are outside range (>255).
* bugfix #429: fix doxyparse.pl fails on NetBSD because specified
path to perl.
@@ -300,7 +463,7 @@
* Update of libdns.vim (thanks Miek Gieben)
* Added the ldnsx Python module to our contrib section, which adds even
more pythonisticism to the usage of ldns with Python. (Many thanks
- to Christpher Olah and Paul Wouters)
+ to Christopher Olah and Paul Wouters)
The ldnsx module is automatically installed when --with-pyldns is
used with configuring, but may explicitly be excluded with the
--without-pyldnsx option to configure.
@@ -328,7 +491,7 @@
* bugfix #380: Minimizing effect of discrepancies in sizeof(bool) at
build time and when used.
* bugfix #383: Fix detection of empty nonterminals of multiple labels.
- * Fixed the ommission of rrsets in nsec(3)s and rrsigs to all occluded
+ * Fixed the omission of rrsets in nsec(3)s and rrsigs to all occluded
names (in stead of just the ones that contain glue only) and all
occluded records on the delegation points (in stead of just the glue).
* Clarify the operation of ldns_dnssec_mark_glue and the usage of
@@ -511,7 +674,7 @@
* --enable-gost : use the GOST algorithm (experimental).
* Added some missing options to drill manpage
* Some fixes to --without-ssl option
- * Fixed quote parsing withing strings
+ * Fixed quote parsing within strings
* Bitmask fix in EDNS handling
* Fixed non-fqdn domain name completion for rdata field domain
names of length 1
@@ -618,7 +781,7 @@
from Shane Kerr, bug id 188)
* zone.c memory leaks on error and allocation checks fixed (patch
from Shane Kerr, bug id 189)
- * ldns-zplit output and error messages fixed (patch from Shane Kerr,
+ * ldns-zsplit output and error messages fixed (patch from Shane Kerr,
bug id 190)
* Fixed potential buffer overflow in ldns_str2rdf_dname
* Signing code no longer signs delegation NS rrsets
@@ -647,7 +810,7 @@
* DLV RR type added
* TCP fallback system has been improved
* HMAC-SHA256 TSIG support has been added.
- * TTLS are now correcly set in NSEC(3) records when signing zones
+ * TTLS are now correctly set in NSEC(3) records when signing zones
EXAMPLE TOOLS:
* New example: ldns-revoke to revoke DNSKEYs according to RFC5011
@@ -722,7 +885,7 @@
28 Nov 2007 1.2.2:
* Added support for HMAC-MD5 keys in generator
* Added a new example tool (written by Ondrej Sury): ldns-compare-zones
- * ldns-keygen now checks key sizes for rfc conformancy
+ * ldns-keygen now checks key sizes for rfc conformance
* ldns-signzone outputs SSL error if present
* Fixed manpages (thanks to Ondrej Sury)
* Fixed Makefile for -j <x>
@@ -800,7 +963,7 @@
* -r was killed in favor of -o <header bit mnemonic> which
allows for a header bits setting (and maybe more in the
future)
- * DNSSEC is never automaticaly set, even when you query
+ * DNSSEC is never automatically set, even when you query
for DNSKEY/RRSIG or DS.
* Implement a crude RTT check, it now distinguishes between
reachable and unreachable.
@@ -812,7 +975,7 @@
* ldns-dpa was added to the examples - this is the Dns Packet
Analyzer tool.
* ldnsd - as very, very simple nameserver impl.
- * ldns-zsplit - split zones for parrallel signing
+ * ldns-zsplit - split zones for parallel signing
* ldns-zcat - cat split zones back together
* ldns-keyfetcher - Fetches DNSKEY records with a few (non-strong,
non-DNSSEC) anti-spoofing techniques.
@@ -831,7 +994,7 @@
API:
Changed:
* renamed ldns/dns.h to ldns/ldns.h
- * ldns_rr_new_frm_str() is extented with an extra variable which
+ * ldns_rr_new_frm_str() is extended with an extra variable which
in common use may be NULL. This trickles through to:
o ldns_rr_new_frm_fp
o ldns_rr_new_frm_fp_l
@@ -872,7 +1035,7 @@
* char *_when was removed from the ldns_pkt structure
18 Oct 2005: 1.0.0: ldns-team
- * Commited a patch from Håkan Olsson
+ * Committed a patch from Håkan Olsson
* Added UPDATE support (Jakob Schlyter and Håkan Olsson)
* License change: ldns is now BSD licensed
* ldns now depends on SSL
@@ -905,7 +1068,7 @@
13 Jun 2005: 0.65: ldns-team
* Repository is online at:
http://www.nlnetlabs.nl/ldns/svn/
- * Apply reference copying throuhgout ldns, except in 2
+ * Apply reference copying throughout ldns, except in 2
places in the ldns_resolver structure (._domain and
._nameservers)
* Usual array of bugfixes
@@ -914,7 +1077,7 @@
23 May 2005: 0.60: ldns-team
* Removed config.h from the header installed files
- (you're not supposed to include that in a libary)
+ (you're not supposed to include that in a library)
* Further tweaking
- DNSSEC signing/verification works
- Assorted bug fixes and tweaks (memory management)
diff --git a/Makefile.in b/Makefile.in
index 04f683bf1197..57957d0844d3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -40,15 +40,29 @@ edit = sed \
# override $U variable which is used by autotools for deansification (for
# K&R C compilers), but causes problems if $U is defined in the env).
U=
+
+# set all of the tools due to cross-compiles. libtool uses most of them.
+# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
CC = @CC@
+CXX = @CXX@
+CPP = @CPP@
+LD = @LD@
+AS = @AS@
+AR = @AR@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+
+# Unbound project specific flags
CFLAGS = @CFLAGS@
CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLDNS_TRUST_ANCHOR_FILE="\"$(LDNS_TRUST_ANCHOR_FILE)\""
+ARFLAGS = @ARFLAGS@
LDFLAGS = @LDFLAGS@
+
LIBS = @LIBS@
LIBOBJDIR = compat/
LIBOBJS = @LIBOBJS@
PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
-PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
+PYTHON_LIBS = @PYTHON_LIBS@
PYTHON_X_CFLAGS = @PYTHON_X_CFLAGS@
LIBSSL_CPPFLAGS = @LIBSSL_CPPFLAGS@
LIBSSL_LDFLAGS = @LIBSSL_LDFLAGS@
@@ -72,15 +86,15 @@ LINTFLAGS += -D"__BEGIN_DECLS=" -D"__ssize_t=ssize_t" -D"__intptr_t=intptr
LINTFLAGS += -D"_RuneLocale=int"
DEPFLAG = @DEPFLAG@
-INSTALL = $(srcdir)/install-sh
+INSTALL = $(srcdir)/install-sh
LIBLOBJS = $(LIBOBJS:.o=.lo)
-LDNS_LOBJS = buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo
+LDNS_LOBJS = buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo edns.lo
LDNS_LOBJS_EX = ^linktest\.c$$
LDNS_ALL_LOBJS = $(LDNS_LOBJS) $(LIBLOBJS)
LIB = libldns.la
-LDNS_HEADERS = buffer.h dane.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h duration.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h radix.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h
+LDNS_HEADERS = buffer.h dane.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h duration.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h radix.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h edns.h
LDNS_HEADERS_EX = ^config\.h|common\.h|util\.h|net\.h$$
LDNS_HEADERS_GEN= common.h util.h net.h
@@ -89,8 +103,8 @@ PYLDNS_I_FILES = $(pywrapdir)/file_py3.i $(pywrapdir)/ldns_buffer.i $(pywrapdir)
DRILL_LOBJS = drill/chasetrace.lo drill/dnssec.lo drill/drill.lo drill/drill_util.lo drill/error.lo drill/root.lo drill/securetrace.lo drill/work.lo
EXAMPLE_LOBJS = examples/ldns-chaos.lo examples/ldns-compare-zones.lo examples/ldns-dane.lo examples/ldnsd.lo examples/ldns-dpa.lo examples/ldns-gen-zone.lo examples/ldns-key2ds.lo examples/ldns-keyfetcher.lo examples/ldns-keygen.lo examples/ldns-mx.lo examples/ldns-notify.lo examples/ldns-nsec3-hash.lo examples/ldns-read-zone.lo examples/ldns-resolver.lo examples/ldns-revoke.lo examples/ldns-rrsig.lo examples/ldns-signzone.lo examples/ldns-test-edns.lo examples/ldns-testns.lo examples/ldns-testpkts.lo examples/ldns-update.lo examples/ldns-verify-zone.lo examples/ldns-version.lo examples/ldns-walk.lo examples/ldns-zcat.lo examples/ldns-zsplit.lo
-EXAMPLE_PROGS = examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-read-zone examples/ldns-resolver examples/ldns-rrsig examples/ldns-test-edns examples/ldns-update examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit
-EX_PROGS_BASENM = ldns-chaos ldns-compare-zones ldns-dane ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-testns ldns-testpkts ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit
+EXAMPLE_PROGS = examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-read-zone examples/ldns-resolver examples/ldns-rrsig examples/ldns-test-edns examples/ldns-update examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit
+EX_PROGS_BASENM = ldns-chaos ldns-compare-zones ldns-dane ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-testns ldns-testpkts ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit
EXAMPLE_PROGS_EX= ^examples/ldns-testpkts\.c|examples/ldns-testns\.c|examples/ldns-dane\.c|examples/ldns-dpa\.c|examples/ldns-nsec3-hash\.c|examples/ldns-revoke\.c|examples/ldns-signzone\.c|examples/ldns-verify-zone\.c$$
TESTNS = examples/ldns-testns
TESTNS_LOBJS = examples/ldns-testns.lo examples/ldns-testpkts.lo
@@ -118,6 +132,10 @@ all: setup-builddir lib linktest manpages @P5_DNS_LDNS@ @PYLDNS@ @DRILL@ @EXAMPL
.c.lo:
$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $< -o $@
+# Need libtool compile
+.c.o:
+ $(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $< -o $@
+
$(LDNS_LOBJS) $(LIBLOBJS) $(DRILL_LOBJS) $(EXAMPLE_LOBJS):
$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/$(@:.lo=.c) -o $@
@@ -130,14 +148,16 @@ setup-builddir:
@if test ! -d include ; then $(INSTALL) -d include; fi
@if test ! -h include/ldns ; then ln -s ../ldns include/ldns || echo "include/ldns exists"; fi
+# builddir/ is used by 60-compile-builddir
putdown-builddir:
rm -f include/ldns lib config.h
test ! -d include || rmdir include || :
if test -d examples -a ! -f examples/README; then rmdir examples || : ; fi
if test -d drill -a ! -f drill/README ; then rmdir drill || : ; fi
if test -d compat -a ! -f compat/malloc.c; then rmdir compat || : ; fi
+ rm -rf builddir/
-drill: no-drill-config-h drill/drill drill/drill.1
+drill: setup-builddir no-drill-config-h drill/drill drill/drill.1
no-drill-config-h:
@if test -e $(srcdir)/drill/config.h -o -e drill/config.h ; \
then echo "A config.h was detected in the drill subdirectory." ; \
@@ -147,8 +167,8 @@ no-drill-config-h:
exit -1 ; \
fi
-drill/drill: $(DRILL_LOBJS) $(LIB)
- $(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -lldns -o drill/drill
+drill/drill: $(DRILL_LOBJS) $(LIB) $(LIBLOBJS)
+ $(LINK_EXE) $(DRILL_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o drill/drill
drill/drill.1: $(srcdir)/drill/drill.1.in
$(edit) $(srcdir)/drill/drill.1.in > drill/drill.1
@@ -168,7 +188,7 @@ uninstall-drill:
clean-drill:
$(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1
-examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1
+examples: setup-builddir no-examples-config-h $(LIB) $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1
no-examples-config-h:
@if test -e $(srcdir)/examples/config.h -o -e examples/config.h ; \
then echo "A config.h was detected in the examples subdirectory." ; \
@@ -178,22 +198,25 @@ no-examples-config-h:
exit -1 ; \
fi
+# Need LIBSSL_LIBS
$(EXAMPLE_PROGS):
- $(LINK_EXE) $@.lo $(LIBS) -lldns -o $@
+ $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@
+# Need LIBSSL_LIBS
$(TESTNS):
- $(LINK_EXE) $(TESTNS_LOBJS) $(LIBS) -lldns -o $(TESTNS)
+ $(LINK_EXE) $(TESTNS_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $(TESTNS)
+# Need LIBSSL_LIBS
$(LDNS_DPA):
- $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBS) $(LIBPCAP_LIBS) -lldns \
+ $(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBLOBJS) $(LIB) $(LIBPCAP_LIBS) $(LIBSSL_LIBS) $(LIBS) \
-o $(LDNS_DPA)
$(LDNS_DANE):
- $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBS) $(LIBSSL_SSL_LIBS) -lldns \
+ $(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_SSL_LIBS) $(LIBS) \
-o $(LDNS_DANE)
$(EX_SSL_PROGS):
- $(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o $@
+ $(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@
examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in
$(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1
@@ -221,14 +244,14 @@ uninstall-examples:
test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ;
clean-examples:
- $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS)
+ $(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS)
$(LIBTOOL) --mode clean rm -f $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS)
$(LIBTOOL) --mode clean rm -f $(EXAMPLE_LOBJS)
$(LIBTOOL) --mode clean rm -f examples/ldns-dane.1 examples/ldns-verify-zone.1
linktest: $(srcdir)/linktest.c libldns.la
$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo
- $(LINK_EXE) linktest.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o linktest
+ $(LINK_EXE) linktest.lo $(LIB) $(LIBSSL_LIBS) $(LIBS) -o linktest
lib: libldns.la
@@ -243,7 +266,7 @@ libldns.la-export-all: $(LDNS_ALL_LOBJS)
mancheck:
sh -c 'find . -name \*.\[13\] -exec troff -z {} \;' 2>&1 | sed "s/^\.\///" | sed "s/\(:[0\-9]\+:\)/\1 warning:/g"
-doxygen: manpages
+doxygen:
@if test ! -e doc/header.html ; then \
$(INSTALL) -c -m 644 $(srcdir)/doc/header.html doc/ ; \
fi ;
@@ -252,14 +275,29 @@ doxygen: manpages
doc: manpages $(doxygen)
@$(INSTALL) -d doc
-manpages: $(srcdir)/doc/function_manpages
- @$(INSTALL) -d doc
- @cat $(srcdir)/ldns/*.h \
- | $(srcdir)/doc/doxyparse.pl \
- -m $(srcdir)/doc/function_manpages \
- | grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages
+manpages: $(srcdir)/doc/function_manpages
+ @$(INSTALL) -d doc/man/man3
+ @if [ -f $(srcdir)/doc/man/man3/ldns_rr.3 ] ; \
+ then \
+ if test -d ldns ; then \
+ echo "is builddir srcdir" > ldns/YES ; \
+ if [ ! -f $(srcdir)/ldns/YES ]; then \
+ echo "Copying manpages..."; \
+ for m in $(srcdir)/doc/man/man3/*.3 ; \
+ do \
+ $(INSTALL) -c -C -m 444 $${m} doc/man/man3/ ; \
+ done; \
+ fi ;\
+ rm -f ldns/YES; \
+ fi; \
+ else \
+ echo "Generating manpages..."; \
+ cat $(srcdir)/ldns/*.h \
+ | $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages \
+ | grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages; \
+ fi
-manpage-create-errors: $(srcdir)/doc/function_manpages
+manpage-create-errors: $(srcdir)/doc/function_manpages
@$(INSTALL) -d doc
@cat $(srcdir)/ldns/*.h \
| $(srcdir)/doc/doxyparse.pl -e \
@@ -276,7 +314,7 @@ manpage-errors:
echo doc/man/man3/$${m}.3: manpage-has-bad-whatis-entry; \
fi; \
done || echo "WARNING!: Cannot detect manpage errors on `uname`"
-
+
pyldns: _ldns.la
$(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h
@@ -285,8 +323,8 @@ $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h
ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h
$(COMP_LIB) -I./include/ldns $(LIBSSL_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@
-_ldns.la: ldns_wrapper.lo libldns.la
- $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS)
+_ldns.la: ldns_wrapper.lo libldns.la
+ $(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs $(LIB) $(PYTHON_LIBS) $(LIBS)
$(p5_dns_ldns_dir)/Makefile: $(p5_dns_ldns_dir)/Makefile.PL
BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); LD_LIBRARY_PATH="$$BUILDDIR/.libs:$$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$$BUILDDIR/.libs:$$DYLD_LIBRARY_PATH" $(PERL) Makefile.PL LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR"
@@ -308,9 +346,9 @@ clean-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile
test-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile
cd $(p5_dns_ldns_dir); $(MAKE) test
-install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
+install: install-h install-lib install-pc @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
-uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
+uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib uninstall-pc $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
destclean: uninstall
@@ -355,12 +393,22 @@ uninstall-h:
test ! -d $(DESTDIR)$(includedir)/ldns || rmdir -p $(DESTDIR)$(includedir)/ldns || echo "ok, dir already gone"
exit 0
+packaging/libldns.pc: $(srcdir)/packaging/libldns.pc.in
+ ./config.status --file=$@
+
+install-pc: packaging/libldns.pc
+ $(INSTALL) -m 644 packaging/libldns.pc $(DESTDIR)$(libdir)/pkgconfig/ldns.pc
+
+uninstall-pc:
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/pkgconfig/ldns.pc
+ test ! -d $(DESTDIR)$(libdir)/pkgconfig || rmdir -p $(DESTDIR)$(libdir)/pkgconfig || echo "ok, dir already gone"
+
install-lib: lib
$(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
$(LIBTOOL) --mode=install cp libldns.la $(DESTDIR)$(libdir)
$(LIBTOOL) --mode=finish $(DESTDIR)$(libdir)
-uninstall-lib:
+uninstall-lib:
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/libldns.la
test ! -d $(DESTDIR)$(libdir) || rmdir -p $(DESTDIR)$(libdir) || echo "ok, dir already gone"
@@ -370,7 +418,7 @@ install-pyldns: @PYLDNS@
$(LIBTOOL) --mode=install cp _ldns.la $(DESTDIR)$(python_site)
$(LIBTOOL) --mode=finish $(DESTDIR)$(python_site)
-uninstall-pyldns:
+uninstall-pyldns:
rm -f $(DESTDIR)$(python_site)/ldns/*
test ! -d $(DESTDIR)$(python_site)/ldns || rmdir $(DESTDIR)$(python_site)/ldns || echo "ok, dir already gone"
@@ -425,7 +473,7 @@ docclean:
rm -f doc/ldns_manpages
distclean: realclean
- rm -fr autom4te.cache
+ rm -fr autom4te.cache
rm -f config.guess config.sub configure ltmain.sh ldns/config.h.in
## No need for changes here
@@ -457,8 +505,8 @@ allclean: test-clean clean
test-clean:
tpkg -b test clean
-test: @TEST_P5_DNS_LDNS@
- if test -x "`which bash`"; then bash test/test_all.sh; else sh test/test_all.sh; fi
+test: examples drill @TEST_P5_DNS_LDNS@
+ ./test/test_all.sh
# Recreate symbols file, only needed when API changes
@@ -538,129 +586,137 @@ depend:
buffer.lo buffer.o: $(srcdir)/buffer.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
dane.lo dane.o: $(srcdir)/dane.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
dname.lo dname.o: $(srcdir)/dname.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
dnssec.lo dnssec.o: $(srcdir)/dnssec.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
dnssec_sign.lo dnssec_sign.o: $(srcdir)/dnssec_sign.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
dnssec_verify.lo dnssec_verify.o: $(srcdir)/dnssec_verify.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
dnssec_zone.lo dnssec_zone.o: $(srcdir)/dnssec_zone.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+duration.lo duration.o: $(srcdir)/duration.c ldns/config.h $(srcdir)/ldns/duration.h
+edns.lo edns.o: $(srcdir)/edns.c $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
+ $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
+ $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
+ $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-duration.lo duration.o: $(srcdir)/duration.c ldns/config.h $(srcdir)/ldns/duration.h
error.lo error.o: $(srcdir)/error.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
higher.lo higher.o: $(srcdir)/higher.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
host2str.lo host2str.o: $(srcdir)/host2str.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
host2wire.lo host2wire.o: $(srcdir)/host2wire.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
keys.lo keys.o: $(srcdir)/keys.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
linktest.lo linktest.o: $(srcdir)/linktest.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
net.lo net.o: $(srcdir)/net.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
packet.lo packet.o: $(srcdir)/packet.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
parse.lo parse.o: $(srcdir)/parse.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
@@ -670,40 +726,40 @@ radix.lo radix.o: $(srcdir)/radix.c ldns/config.h $(srcdir)/ldns/radix.h $(srcdi
rbtree.lo rbtree.o: $(srcdir)/rbtree.c ldns/config.h $(srcdir)/ldns/rbtree.h ldns/util.h ldns/common.h
rdata.lo rdata.o: $(srcdir)/rdata.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
resolver.lo resolver.o: $(srcdir)/resolver.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
rr.lo rr.o: $(srcdir)/rr.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
rr_functions.lo rr_functions.o: $(srcdir)/rr_functions.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
sha1.lo sha1.o: $(srcdir)/sha1.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
@@ -711,24 +767,24 @@ sha1.lo sha1.o: $(srcdir)/sha1.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h
sha2.lo sha2.o: $(srcdir)/sha2.c ldns/config.h $(srcdir)/ldns/sha2.h
str2host.lo str2host.o: $(srcdir)/str2host.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
tsig.lo tsig.o: $(srcdir)/tsig.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
update.lo update.o: $(srcdir)/update.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
@@ -737,16 +793,16 @@ util.lo util.o: $(srcdir)/util.c ldns/config.h $(srcdir)/ldns/rdata.h ldns/commo
ldns/util.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/buffer.h
wire2host.lo wire2host.o: $(srcdir)/wire2host.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
zone.lo zone.o: $(srcdir)/zone.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
@@ -772,280 +828,286 @@ compat/strlcpy.lo compat/strlcpy.o: $(srcdir)/compat/strlcpy.c ldns/config.h
compat/timegm.lo compat/timegm.o: $(srcdir)/compat/timegm.c ldns/config.h
examples/ldns-chaos.lo examples/ldns-chaos.o: $(srcdir)/examples/ldns-chaos.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-compare-zones.lo examples/ldns-compare-zones.o: $(srcdir)/examples/ldns-compare-zones.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-dane.lo examples/ldns-dane.o: $(srcdir)/examples/ldns-dane.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-dane.lo examples/ldns-dane.o: $(srcdir)/examples/ldns-dane.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldnsd.lo examples/ldnsd.o: $(srcdir)/examples/ldnsd.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
$(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-dpa.lo examples/ldns-dpa.o: $(srcdir)/examples/ldns-dpa.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h $(srcdir)/examples/ldns-dpa.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h $(srcdir)/examples/ldns-dpa.h
examples/ldns-gen-zone.lo examples/ldns-gen-zone.o: $(srcdir)/examples/ldns-gen-zone.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-key2ds.lo examples/ldns-key2ds.o: $(srcdir)/examples/ldns-key2ds.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-key2ds.lo examples/ldns-key2ds.o: $(srcdir)/examples/ldns-key2ds.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-keyfetcher.lo examples/ldns-keyfetcher.o: $(srcdir)/examples/ldns-keyfetcher.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-keygen.lo examples/ldns-keygen.o: $(srcdir)/examples/ldns-keygen.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-keygen.lo examples/ldns-keygen.o: $(srcdir)/examples/ldns-keygen.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-mx.lo examples/ldns-mx.o: $(srcdir)/examples/ldns-mx.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-notify.lo examples/ldns-notify.o: $(srcdir)/examples/ldns-notify.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-nsec3-hash.lo examples/ldns-nsec3-hash.o: $(srcdir)/examples/ldns-nsec3-hash.c ldns/config.h $(srcdir)/ldns/ldns.h \
- ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
- $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-read-zone.lo examples/ldns-read-zone.o: $(srcdir)/examples/ldns-read-zone.c ldns/config.h $(srcdir)/ldns/ldns.h \
- ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
- $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+examples/ldns-notify.lo examples/ldns-notify.o: $(srcdir)/examples/ldns-notify.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-nsec3-hash.lo examples/ldns-nsec3-hash.o: $(srcdir)/examples/ldns-nsec3-hash.c ldns/config.h $(srcdir)/ldns/ldns.h \
+ ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
+ $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-read-zone.lo examples/ldns-read-zone.o: $(srcdir)/examples/ldns-read-zone.c ldns/config.h $(srcdir)/ldns/ldns.h \
+ ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
+ $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-resolver.lo examples/ldns-resolver.o: $(srcdir)/examples/ldns-resolver.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-revoke.lo examples/ldns-revoke.o: $(srcdir)/examples/ldns-revoke.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-revoke.lo examples/ldns-revoke.o: $(srcdir)/examples/ldns-revoke.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-rrsig.lo examples/ldns-rrsig.o: $(srcdir)/examples/ldns-rrsig.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-signzone.lo examples/ldns-signzone.o: $(srcdir)/examples/ldns-signzone.c ldns/config.h $(srcdir)/ldns/ldns.h \
- ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
- $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-signzone.lo examples/ldns-signzone.o: $(srcdir)/examples/ldns-signzone.c ldns/config.h $(srcdir)/ldns/ldns.h \
+ ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
+ $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-test-edns.lo examples/ldns-test-edns.o: $(srcdir)/examples/ldns-test-edns.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-testns.lo examples/ldns-testns.o: $(srcdir)/examples/ldns-testns.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
- $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-testns.lo examples/ldns-testns.o: $(srcdir)/examples/ldns-testns.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h $(srcdir)/examples/ldns-testpkts.h
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h \
+ $(srcdir)/examples/ldns-testpkts.h
examples/ldns-testpkts.lo examples/ldns-testpkts.o: $(srcdir)/examples/ldns-testpkts.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h \
+ $(srcdir)/examples/ldns-testpkts.h
+examples/ldns-update.lo examples/ldns-update.o: $(srcdir)/examples/ldns-update.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
- $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h \
- $(srcdir)/examples/ldns-testpkts.h
-examples/ldns-update.lo examples/ldns-update.o: $(srcdir)/examples/ldns-update.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-verify-zone.lo examples/ldns-verify-zone.o: $(srcdir)/examples/ldns-verify-zone.c ldns/config.h $(srcdir)/ldns/ldns.h \
ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h \
$(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h \
+ $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
+ $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
+ $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
+ ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
+ $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+examples/ldns-version.lo examples/ldns-version.o: $(srcdir)/examples/ldns-version.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
+ ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
$(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
$(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
$(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
$(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-examples/ldns-version.lo examples/ldns-version.o: $(srcdir)/examples/ldns-version.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
- ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-walk.lo examples/ldns-walk.o: $(srcdir)/examples/ldns-walk.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-zcat.lo examples/ldns-zcat.o: $(srcdir)/examples/ldns-zcat.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-zsplit.lo examples/ldns-zsplit.o: $(srcdir)/examples/ldns-zsplit.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+drill/chasetrace.lo drill/chasetrace.o: $(srcdir)/drill/chasetrace.c $(srcdir)/drill/drill.h ldns/config.h \
+ $(srcdir)/drill/drill_util.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
+ $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
+ $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
+ $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
$(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
$(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-drill/chasetrace.lo drill/chasetrace.o: $(srcdir)/drill/chasetrace.c $(srcdir)/drill/drill.h ldns/config.h \
- $(srcdir)/drill/drill_util.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
- $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
- $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
+drill/dnssec.lo drill/dnssec.o: $(srcdir)/drill/dnssec.c $(srcdir)/drill/drill.h ldns/config.h $(srcdir)/drill/drill_util.h \
+ $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h \
+ $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h \
+ $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
$(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h \
$(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h \
$(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-drill/dnssec.lo drill/dnssec.o: $(srcdir)/drill/dnssec.c $(srcdir)/drill/drill.h ldns/config.h $(srcdir)/drill/drill_util.h \
- $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h \
- $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h \
- $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
- $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
- $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
- ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
- $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
drill/drill.lo drill/drill.o: $(srcdir)/drill/drill.c $(srcdir)/drill/drill.h ldns/config.h $(srcdir)/drill/drill_util.h \
$(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h \
$(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h \
- $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
- $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
- $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
- ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
- $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-drill/drill_util.lo drill/drill_util.o: $(srcdir)/drill/drill_util.c $(srcdir)/drill/drill.h ldns/config.h \
- $(srcdir)/drill/drill_util.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
- $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
- $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
+ $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
$(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h \
$(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h \
$(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+drill/drill_util.lo drill/drill_util.o: $(srcdir)/drill/drill_util.c $(srcdir)/drill/drill.h ldns/config.h \
+ $(srcdir)/drill/drill_util.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
+ $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
+ $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
+ $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
+ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
+ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
+ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
drill/error.lo drill/error.o: $(srcdir)/drill/error.c $(srcdir)/drill/drill.h ldns/config.h $(srcdir)/drill/drill_util.h \
$(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h \
$(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h \
- $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
- $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
- $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
- ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
- $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
+ $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h \
+ $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h \
+ $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
+ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
+ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
drill/root.lo drill/root.o: $(srcdir)/drill/root.c $(srcdir)/drill/drill.h ldns/config.h $(srcdir)/drill/drill_util.h \
$(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h \
$(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h \
- $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
- $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
- $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
- ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
- $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-drill/securetrace.lo drill/securetrace.o: $(srcdir)/drill/securetrace.c $(srcdir)/drill/drill.h ldns/config.h \
- $(srcdir)/drill/drill_util.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
- $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
- $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
+ $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
$(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h \
$(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h \
$(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
$(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
$(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+drill/securetrace.lo drill/securetrace.o: $(srcdir)/drill/securetrace.c $(srcdir)/drill/drill.h ldns/config.h \
+ $(srcdir)/drill/drill_util.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
+ $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
+ $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
+ $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
+ $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
+ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
+ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
drill/work.lo drill/work.o: $(srcdir)/drill/work.c $(srcdir)/drill/drill.h ldns/config.h $(srcdir)/drill/drill_util.h \
$(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h \
$(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h \
- $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h \
- $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h \
- $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h \
- ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h \
- $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h \
+ $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h \
+ $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h \
+ $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
+ $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
+ $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
examples/ldns-chaos: examples/ldns-chaos.lo examples/ldns-chaos.o $(LIB)
examples/ldns-compare-zones: examples/ldns-compare-zones.lo examples/ldns-compare-zones.o $(LIB)
examples/ldnsd: examples/ldnsd.lo examples/ldnsd.o $(LIB)
diff --git a/README b/README
index 455f1d560ef2..98575917b448 100644
--- a/README
+++ b/README
@@ -51,11 +51,11 @@ ldns is developed by the ldns team at NLnet Labs. This team currently
consists of:
o Willem Toorop
o Wouter Wijngaards
- o Matthijs Mekking
Former main developers:
o Jelte Jansen
o Miek Gieben
+ o Matthijs Mekking
* Credits
We have received patches from the following people, thanks!
@@ -70,6 +70,7 @@ We have received patches from the following people, thanks!
o Havard Eidnes
o Leo Baltus
o Dag-Erling Smørgrav
+ o Felipe Gasper
INFORMATION FOR SPECIFIC OPERATING SYSTEMS
@@ -96,7 +97,7 @@ contrib/build-solaris.sh
KNOWN ISSUES
A complete list of currently known open issues can be found here:
-http://www.nlnetlabs.nl/projects/ldns/bugs
+https://github.com/NLnetLabs/ldns/issues
* pyldns
Compiling pyldns produces many ``unused parameter'' warnings. Those are
diff --git a/README-Travis.md b/README-Travis.md
new file mode 100644
index 000000000000..faa534353119
--- /dev/null
+++ b/README-Travis.md
@@ -0,0 +1,274 @@
+# Travis Testing
+
+LDNS 1.7.1 and above leverage Travis CI to increase coverage of compilers and platforms. Compilers include Clang and GCC; while platforms include Android, iOS, Linux, and OS X on AMD64, Aarch64, PowerPC and s390x hardware.
+
+Android is tested on armv7a, aarch64, x86 and x86_64. The Android recipes build and install OpenSSL, and then builds LDNS. The testing is tailored for Android NDK-r19 and above, and includes NDK-r20 and NDK-r21. Mips and Mips64 are not tested because they are no longer supported under current NDKs.
+
+iOS is tested for iPhoneOS, WatchOS, AppleTVOS, iPhoneSimulator, AppleTVSimulator and WatchSimulator. The testing uses Xcode 10 on OS X 10.13.
+
+The LDNS Travis configuration file `.travis.yml` does not use top-level keys like `os:` and `compiler:` so there is no matrix expansion. Instead LDNS specifies the exact job to run under the `jobs:` and `include:` keys.
+
+## Typical recipe
+
+A typical recipe tests Clang and GCC on various hardware. The hardware includes AMD64, Aarch64, PowerPC and s390x. PowerPC is a little-endian platform, and s390x is a big-endian platform. There are pairs of recipes that are similar to the following.
+
+```
+- os: linux
+ name: GCC on Linux, Aarch64
+ compiler: gcc
+ arch: arm64
+ dist: bionic
+- os: linux
+ name: Clang on Linux, Aarch64
+ compiler: clang
+ arch: arm64
+ dist: bionic
+```
+
+OS X provides a single recipe to test Clang. GCC is not tested because GCC is an alias for Clang.
+
+## Sanitizer builds
+
+Two sanitizer builds are tested using Clang and GCC, for a total of four builds. The first sanitizer is Undefined Behavior sanitizer (UBsan), and the second is Address sanitizer (Asan). The sanitizers are only run on AMD64 hardware. Note the environment includes `UBSAN=yes` or `ASAN=yes` for the sanitizer builds.
+
+The recipes are similar to the following.
+
+```
+- os: linux
+ name: UBsan, GCC on Linux, Amd64
+ compiler: gcc
+ arch: amd64
+ dist: bionic
+ env: UBSAN=yes
+- os: linux
+ name: UBsan, Clang on Linux, Amd64
+ compiler: clang
+ arch: amd64
+ dist: bionic
+ env: UBSAN=yes
+```
+
+When the Travis script encounters a sanitizer it uses different `CFLAGS` and configuration string.
+
+```
+if [ "$UBSAN" = "yes" ]; then
+ export CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover"
+ bash test/test_ci.sh
+elif [ "$ASAN" = "yes" ]; then
+ export CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address"
+ bash test/test_ci.sh
+...
+```
+
+## Android builds
+
+Travis tests Android builds for the armv7a, aarch64, x86 and x86_64 architectures. The builds are trickier than other builds for several reasons. The testing requires installation of the Android NDK and SDK, it requires a cross-compile, and requires OpenSSL prerequisites. The Android cross-compiles also require care to set the Autotools triplet, the OpenSSL triplet, the toolchain path, the tool variables, and the sysroot. The discussion below detail the steps of the Android recipes.
+
+### Android job
+
+The first step sets environmental variables for the cross-compile using the Travis job. A typical job with variables is shown below.
+
+```
+- os: linux
+ name: Android armv7a, Linux, Amd64
+ compiler: clang
+ arch: amd64
+ dist: bionic
+ env:
+ - ANDROID=yes
+ - AUTOTOOLS_HOST=armv7a-linux-androideabi
+ - OPENSSL_HOST=android-arm
+ - ANDROID_CPU=armv7a
+ - ANDROID_API=23
+ - ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU"
+ - ANDROID_SDK_ROOT="$HOME/android-sdk"
+ - ANDROID_NDK_ROOT="$HOME/android-ndk"
+```
+
+### ANDROID_NDK_ROOT
+
+The second step for Android is to set the environmental variables `ANDROID_NDK_ROOT` and `ANDROID_SDK_ROOT`. This is an important step because the NDK and SDK use the variables internally to locate their own tools. Also see [Recommended NDK Directory?](https://groups.google.com/forum/#!topic/android-ndk/qZjhOaynHXc) on the android-ndk mailing list. (Many folks miss this step, or use incorrect variables like `ANDROID_NDK_HOME` or `ANDROID_SDK_HOME`).
+
+If you are working from a developer machine you probably already have the necessary tools installed. You should ensure `ANDROID_NDK_ROOT` and `ANDROID_SDK_ROOT` are set properly.
+
+### Tool installation
+
+The second step installs tools needed for OpenSSL, Expat and LDNS. This step is handled in by the script `contrib/android/install_tools.sh`. The tools include curl, tar, zip, unzip and java.
+
+```
+before_script:
+ - |
+ if [ "$ANDROID" = "yes" ]; then
+ ./contrib/android/install_tools.sh
+ elif [ "$IOS" = "yes" ]; then
+ ./contrib/ios/install_tools.sh
+ fi
+```
+
+### NDK installation
+
+The third step installs the NDK and SDK. This step is handled in by the script `contrib/android/install_ndk.sh`. The script uses `ANDROID_NDK_ROOT` and `ANDROID_SDK_ROOT` to place the NDK and SDK in the `$HOME` directory.
+
+If you are working from a developer machine you probably already have a NDK and SDK installed.
+
+### Android environment
+
+The fourth step sets the Android cross-compile environment using the script `contrib/android/setenv_android.sh`. The script is `sourced` so the variables in the script are available to the calling shell. The script sets variables like `CC`, `CXX`, `AS` and `AR`; sets `CFLAGS` and `CXXFLAGS`; sets a `sysroot` so Android headers and libraries are found; and adds the path to the toolchain to `PATH`.
+
+`contrib/android/setenv_android.sh` knows which toolchain and architecture to select by inspecting environmental variables set by Travis for the job. In particular, the variables `ANDROID_CPU` and `ANDROID_API` tell `contrib/android/setenv_android.sh` which tools and libraries to select.
+
+The `contrib/android/setenv_android.sh` script specifies the tools in a `case` statement like the following. There is a case for each of the architectures armv7a, aarch64, x86 and x86_64.
+
+```
+armv8a|aarch64|arm64|arm64-v8a)
+ CC="aarch64-linux-android$ANDROID_API-clang"
+ CXX="aarch64-linux-android$ANDROID_API-clang++"
+ LD="aarch64-linux-android-ld"
+ AS="aarch64-linux-android-as"
+ AR="aarch64-linux-android-ar"
+ RANLIB="aarch64-linux-android-ranlib"
+ STRIP="aarch64-linux-android-strip"
+
+ CFLAGS="-funwind-tables -fexceptions"
+ CXXFLAGS="-funwind-tables -fexceptions -frtti"
+```
+
+### OpenSSL
+
+The fifth step builds OpenSSL. OpenSSL is built for iOS using the scripts `contrib/android/install_openssl.sh`. The script downloads, configures and installs the latest release version of the OpenSSL libraries. OpenSSL is configured with `--prefix="$ANDROID_PREFIX"` so the headers are placed in `$ANDROID_PREFIX/include` directory, and the libraries are placed in the `$ANDROID_PREFIX/lib` directory.
+
+`ANDROID_PREFIX` is the value `$HOME/android$ANDROID_API-$ANDROID_CPU`. The libraries will be installed in `$HOME/android23-armv7a`, `$HOME/android23-aarch64`, etc. For Autotools projects, the appropriate `PKG_CONFIG_PATH` is exported.
+
+`PKG_CONFIG_PATH` is an important variable. It is the userland equivalent to sysroot, and allows Autotools to find non-system headers and libraries for an architecture. Typical `PKG_CONFIG_PATH` are `$HOME/android23-armv7a/lib/pkgconfig` and `$HOME/android23-aarch64/lib/pkgconfig`.
+
+OpenSSL also uses a custom configuration file called `15-android.conf`. It is a copy of the OpenSSL's project file and located at `contrib/android/15-android.conf`. The LDNS version is copied to the OpenSSL source files after unpacking the OpenSSL distribution. The LDNS version has legacy NDK support removed and some other fixes, like `ANDROID_NDK_ROOT` awareness. The changes mean LDNS's `15-android.conf` will only work with LDNS, with NDK-r19 and above, and a properly set environment.
+
+OpenSSL is configured with `no-engine`. If you want to include OpenSSL engines then edit `contrib/android/install_openssl.sh` and remove the config option.
+
+### Android build
+
+Finally, once OpenSSL are built, then the Travis script configures and builds LDNS. The recipe looks as follows.
+
+```
+elif [ "$ANDROID" = "yes" ]; then
+ export AUTOTOOLS_BUILD="$(./config.guess)"
+ export PKG_CONFIG_PATH="$ANDROID_PREFIX/lib/pkgconfig"
+ ./contrib/android/install_ndk.sh
+ source ./contrib/android/setenv_android.sh
+ ./contrib/android/install_openssl.sh
+ ./contrib/android/bootstrap_ldns.sh
+ ./configure \
+ --build="$AUTOTOOLS_BUILD" \
+ --host="$AUTOTOOLS_HOST" \
+ --prefix="$ANDROID_PREFIX" \
+ --with-ssl="$ANDROID_PREFIX" \
+ --disable-gost \
+ --with-drill --with-examples
+ make -j 2
+ make install
+```
+
+Travis only smoke tests an Android build using a compile, link and install. The self tests are not run. TODO: figure out how to fire up an emulator, push the tests to the device and run them.
+
+### Android flags
+
+`contrib/android/setenv_android.sh` uses specific flags for `CFLAGS` and `CXXFLAGS`. They are taken from `ndk-build`, so we consider them the official flag set. It is important to use the same flags across projects to avoid subtle problems due to mixing and matching different flags.
+
+`CXXFLAGS` includes `-fexceptions` and `-frtti` because exceptions and runtime type info are disabled by default. `CFLAGS` include `-funwind-tables` and `-fexceptions` to ensure C++ exceptions pass through C code, if needed. Also see `docs/CPLUSPLUS-SUPPORT.html` in the NDK docs.
+
+To inspect the flags used by `ndk-build` for a platform clone ASOP's [ndk-samples](https://github.com/android/ndk-samples/tree/master/hello-jni) and build the `hello-jni` project. Use the `V=1` flag to see the full compiler output from `ndk-build`.
+
+## iOS builds
+
+Travis tests iOS builds for the armv7a, armv7s and aarch64 architectures for iPhoneOS, AppleTVOS and WatchOS. iPhoneOS is tested using both 32-bit builds (iPhones) and 64-bit builds (iPads). Travis also tests compiles against the simulators. The builds are trickier than other builds for several reasons. The testing requires a cross-compile, and requires OpenSSL prerequisites. The iOS cross-compiles also require care to set the Autotools triplet, the OpenSSL triplet, the toolchain path, the tool variables, and the sysroot. The discussion below detail the steps of the iOS recipes.
+
+### iOS job
+
+The first step sets environmental variables for the cross-compile using the Travis job. A typical job with variables is shown below.
+
+```
+- os: osx
+ osx_image: xcode10
+ name: Apple iPhone on iOS, armv7
+ compiler: clang
+ env:
+ - IOS=yes
+ - AUTOTOOLS_HOST=armv7-apple-ios
+ - OPENSSL_HOST=ios-cross
+ - IOS_SDK=iPhoneOS
+ - IOS_CPU=armv7s
+ - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
+```
+
+### Tool installation
+
+The second step installs tools needed for OpenSSL, Expat and LDNS. This step is handled in by the script `contrib/ios/install_tools.sh`. The tools include autotools, curl and perl. The installation happens at the `before_script:` stage of Travis.
+
+```
+before_script:
+ - |
+ if [ "$ANDROID" = "yes" ]; then
+ ./contrib/android/install_tools.sh
+ elif [ "$IOS" = "yes" ]; then
+ ./contrib/ios/install_tools.sh
+ fi
+```
+
+### iOS environment
+
+The third step sets the iOS cross-compile environment using the script `contrib/ios/setenv_ios.sh`. The script is `sourced` so the variables in the script are available to the calling shell. The script sets variables like `CC`, `CXX`, `AS` and `AR`; sets `CFLAGS` and `CXXFLAGS`; sets a `sysroot` so iOS headers and libraries are found; and adds the path to the toolchain to `PATH`.
+
+`contrib/ios/setenv_ios.sh` knows which toolchain and architecture to select by inspecting environmental variables set by Travis for the job. In particular, the variables `IOS_SDK` and `IOS_CPU` tell `contrib/ios/setenv_ios.sh` which tools and libraries to select.
+
+The `contrib/ios/setenv_ios.sh` script specifies the tools to use during the cross-compile. For Apple SDKs, the tool names are the same as a desktop. There are no special prefixes for the mobile tools.
+
+```
+CPP=cpp
+CC=clang
+CXX=clang++
+LD=ld
+AS=as
+AR=ar
+RANLIB=ranlib
+STRIP=strip
+```
+
+If you are working from a developer machine you probably already have the necessary tools installed.
+
+### OpenSSL
+
+The fourth step builds OpenSSL. OpenSSL is built for iOS using the scripts `contrib/ios/install_openssl.sh`. The script downloads, configures and installs the latest release version of the OpenSSL libraries. OpenSSL is configured with `--prefix="$IOS_PREFIX"` so the headers are placed in `$IOS_PREFIX/include` directory, and the libraries are placed in the `$IOS_PREFIX/lib` directory.
+
+`IOS_PREFIX` is the value `$HOME/$IOS_SDK-$IOS_CPU`. The scheme handles both iOS SDKs and cpu architectures so the pair receives a unique installation directory. The libraries will be installed in `$HOME/iPhoneOS-armv7s`, `$HOME/iPhoneOS-arm64`, `$HOME/iPhoneSimulator-i386`, etc. For Autotools projects, the appropriate `PKG_CONFIG_PATH` is exported.
+
+`PKG_CONFIG_PATH` is an important variable. It is the userland equivalent to sysroot, and allows Autotools to find non-system headers and libraries for an architecture. Typical `PKG_CONFIG_PATH` are `$HOME/iPhoneOS-armv7s/lib/pkgconfig` and `$HOME/iPhoneOS-arm64/lib/pkgconfig`.
+
+OpenSSL also uses a custom configuration file called `15-ios.conf`. It is a copy of the OpenSSL's project file and located at `contrib/ios/15-ios.conf`. The LDNS version is copied to the OpenSSL source files after unpacking the OpenSSL distribution. The changes mean LDNS's `15-ios.conf` will only work with LDNS and a properly set environment.
+
+OpenSSL is configured with `no-engine`. Engines require dynamic loading so engines are disabled permanently in `15-ios.conf`.
+
+### iOS build
+
+Finally, once OpenSSL are built, then the Travis script configures and builds LDNS. The full recipe looks as follows.
+
+```
+elif [ "$IOS" = "yes" ]; then
+ export AUTOTOOLS_BUILD="$(./config.guess)"
+ export PKG_CONFIG_PATH="$IOS_PREFIX/lib/pkgconfig"
+ source ./contrib/ios/setenv_ios.sh
+ ./contrib/ios/install_openssl.sh
+ ./contrib/ios/bootstrap_ldns.sh
+ ./configure \
+ --build="$AUTOTOOLS_BUILD" --host="$AUTOTOOLS_HOST" \
+ --prefix="$IOS_PREFIX" \
+ --with-ssl="$IOS_PREFIX" --disable-gost \
+ --with-drill --with-examples
+ make -j 2
+ make install
+```
+
+Travis only smoke tests an iOS build using a compile, link and install. The self tests are not run. TODO: figure out how to fire up an simulator, push the tests to the device and run them.
+
+### iOS flags
+
+`contrib/ios/setenv_ios.sh` uses specific flags for `CFLAGS` and `CXXFLAGS`. They are taken from Xcode, so we consider them the official flag set. It is important to use the same flags across projects to avoid subtle problems due to mixing and matching different flags.
diff --git a/aclocal.m4 b/aclocal.m4
index c0685c4acb57..a18e85956579 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4
index a6c174f1c421..39e92d875331 100644
--- a/acx_nlnetlabs.m4
+++ b/acx_nlnetlabs.m4
@@ -2,7 +2,15 @@
# Copyright 2009, Wouter Wijngaards, NLnet Labs.
# BSD licensed.
#
-# Version 34
+# Version 41
+# 2021-07-30 fix for openssl use of lib64 directory.
+# 2021-06-14 fix nonblocking test to use host instead of target for mingw test.
+# 2021-05-17 fix nonblocking socket test from grep on mingw32 to mingw for
+# 64bit compatibility.
+# 2021-03-24 fix ACX_FUNC_DEPRECATED to use CPPFLAGS and CFLAGS.
+# 2021-01-05 fix defun for aclocal
+# 2021-01-05 autoconf 2.70 autoupdate and fixes, no AC_TRY_COMPILE
+# 2020-08-24 Use EVP_sha256 instead of HMAC_Update (for openssl-3.0.0).
# 2016-03-21 Check -ldl -pthread for libcrypto for ldns and openssl 1.1.0.
# 2016-03-21 Use HMAC_Update instead of HMAC_CTX_Init (for openssl-1.1.0).
# 2016-01-04 -D_DEFAULT_SOURCE defined with -D_BSD_SOURCE for Linux glibc 2.20
@@ -446,15 +454,12 @@ AC_DEFUN([ACX_CHECK_FORMAT_ATTRIBUTE],
AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "format" attribute)
AC_CACHE_VAL(ac_cv_c_format_attribute,
[ac_cv_c_format_attribute=no
-AC_TRY_COMPILE(
-[#include <stdio.h>
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
void f (char *format, ...) __attribute__ ((format (printf, 1, 2)));
void (*pf) (char *format, ...) __attribute__ ((format (printf, 1, 2)));
-], [
+]], [[
f ("%s", "str");
-],
-[ac_cv_c_format_attribute="yes"],
-[ac_cv_c_format_attribute="no"])
+]])],[ac_cv_c_format_attribute="yes"],[ac_cv_c_format_attribute="no"])
])
AC_MSG_RESULT($ac_cv_c_format_attribute)
@@ -483,14 +488,11 @@ AC_DEFUN([ACX_CHECK_UNUSED_ATTRIBUTE],
AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "unused" attribute)
AC_CACHE_VAL(ac_cv_c_unused_attribute,
[ac_cv_c_unused_attribute=no
-AC_TRY_COMPILE(
-[#include <stdio.h>
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
void f (char *u __attribute__((unused)));
-], [
+]], [[
f ("x");
-],
-[ac_cv_c_unused_attribute="yes"],
-[ac_cv_c_unused_attribute="no"])
+]])],[ac_cv_c_unused_attribute="yes"],[ac_cv_c_unused_attribute="no"])
])
dnl Setup ATTR_UNUSED config.h parts.
@@ -547,7 +549,7 @@ dnl as a requirement so that is gets called before LIBTOOL
dnl because libtools 'AC_REQUIRE' names are right after this one, before
dnl this function contents.
AC_REQUIRE([ACX_LIBTOOL_C_PRE])
-AC_PROG_LIBTOOL
+LT_INIT
])
dnl Detect if u_char type is defined, otherwise define it.
@@ -668,35 +670,41 @@ AC_DEFUN([ACX_SSL_CHECKS], [
HAVE_SSL=yes
dnl assume /usr is already in the lib and dynlib paths.
if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
- LDFLAGS="$LDFLAGS -L$ssldir/lib"
- LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
- ACX_RUNTIME_PATH_ADD([$ssldir/lib])
+ if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
+ LDFLAGS="$LDFLAGS -L$ssldir/lib64"
+ LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib64"
+ ACX_RUNTIME_PATH_ADD([$ssldir/lib64])
+ else
+ LDFLAGS="$LDFLAGS -L$ssldir/lib"
+ LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
+ ACX_RUNTIME_PATH_ADD([$ssldir/lib])
+ fi
fi
- AC_MSG_CHECKING([for HMAC_Update in -lcrypto])
+ AC_MSG_CHECKING([for EVP_sha256 in -lcrypto])
LIBS="$LIBS -lcrypto"
LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
- AC_TRY_LINK(, [
- int HMAC_Update(void);
- (void)HMAC_Update();
- ], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
AC_MSG_RESULT(yes)
- AC_DEFINE([HAVE_HMAC_UPDATE], 1,
- [If you have HMAC_Update])
- ], [
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
+ ],[
AC_MSG_RESULT(no)
# check if -lwsock32 or -lgdi32 are needed.
BAKLIBS="$LIBS"
BAKSSLLIBS="$LIBSSL_LIBS"
- LIBS="$LIBS -lgdi32"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32"
+ LIBS="$LIBS -lgdi32 -lws2_32"
+ LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32"
AC_MSG_CHECKING([if -lcrypto needs -lgdi32])
- AC_TRY_LINK([], [
- int HMAC_Update(void);
- (void)HMAC_Update();
- ],[
- AC_DEFINE([HAVE_HMAC_UPDATE], 1,
- [If you have HMAC_Update])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
@@ -705,12 +713,12 @@ AC_DEFUN([ACX_SSL_CHECKS], [
LIBS="$LIBS -ldl"
LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
AC_MSG_CHECKING([if -lcrypto needs -ldl])
- AC_TRY_LINK([], [
- int HMAC_Update(void);
- (void)HMAC_Update();
- ],[
- AC_DEFINE([HAVE_HMAC_UPDATE], 1,
- [If you have HMAC_Update])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
@@ -719,12 +727,12 @@ AC_DEFUN([ACX_SSL_CHECKS], [
LIBS="$LIBS -ldl -pthread"
LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
AC_MSG_CHECKING([if -lcrypto needs -ldl -pthread])
- AC_TRY_LINK([], [
- int HMAC_Update(void);
- (void)HMAC_Update();
- ],[
- AC_DEFINE([HAVE_HMAC_UPDATE], 1,
- [If you have HMAC_Update])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int EVP_sha256(void);
+ (void)EVP_sha256();
+ ]])],[
+ AC_DEFINE([HAVE_EVP_SHA256], 1,
+ [If you have EVP_sha256])
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
@@ -749,8 +757,7 @@ dnl Checks main header files of SSL.
dnl
AC_DEFUN([ACX_WITH_SSL],
[
-AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
- [enable SSL (will check /usr/local/ssl
+AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl
/usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
],[
withval="yes"
@@ -768,8 +775,7 @@ dnl Checks main header files of SSL.
dnl
AC_DEFUN([ACX_WITH_SSL_OPTIONAL],
[
-AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
- [enable SSL (will check /usr/local/ssl
+AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl
/usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
],[
withval="yes"
@@ -839,7 +845,11 @@ dnl see if on windows
if test "$ac_cv_header_windows_h" = "yes"; then
AC_DEFINE(USE_WINSOCK, 1, [Whether the windows socket API is used])
USE_WINSOCK="1"
- LIBS="$LIBS -lws2_32"
+ if echo $LIBS | grep 'lws2_32' >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -lws2_32"
+ fi
fi
],
dnl no quick getaddrinfo, try mingw32 and winsock2 library.
@@ -889,7 +899,7 @@ AC_CACHE_VAL(cv_cc_deprecated_$cache,
[
echo '$3' >conftest.c
echo 'void f(){ $2 }' >>conftest.c
-if test -z "`$CC -c conftest.c 2>&1 | grep deprecated`"; then
+if test -z "`$CC $CPPFLAGS $CFLAGS -c conftest.c 2>&1 | grep -e deprecated -e unavailable`"; then
eval "cv_cc_deprecated_$cache=no"
else
eval "cv_cc_deprecated_$cache=yes"
@@ -915,7 +925,7 @@ dnl a nonblocking socket do not work, a new call to select is necessary.
AC_DEFUN([ACX_CHECK_NONBLOCKING_BROKEN],
[
AC_MSG_CHECKING([if nonblocking sockets work])
-if echo $target | grep mingw32 >/dev/null; then
+if echo $host | grep mingw >/dev/null; then
AC_MSG_RESULT([no (windows)])
AC_DEFINE([NONBLOCKING_IS_BROKEN], 1, [Define if the network stack does not fully support nonblocking io (causes lower performance).])
else
@@ -1057,7 +1067,7 @@ dnl defines MKDIR_HAS_ONE_ARG
AC_DEFUN([ACX_MKDIR_ONE_ARG],
[
AC_MSG_CHECKING([whether mkdir has one arg])
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#include <unistd.h>
#ifdef HAVE_WINSOCK2_H
@@ -1066,14 +1076,12 @@ AC_TRY_COMPILE([
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
-], [
+]], [[
(void)mkdir("directory");
-],
-AC_MSG_RESULT(yes)
+]])],[AC_MSG_RESULT(yes)
AC_DEFINE(MKDIR_HAS_ONE_ARG, 1, [Define if mkdir has one argument.])
-,
-AC_MSG_RESULT(no)
-)
+],[AC_MSG_RESULT(no)
+])
])dnl end of ACX_MKDIR_ONE_ARG
dnl Check for ioctlsocket function. works on mingw32 too.
diff --git a/ax_pkg_swig.m4 b/ax_pkg_swig.m4
index a1a58dc1e5b9..1d467de3d51f 100644
--- a/ax_pkg_swig.m4
+++ b/ax_pkg_swig.m4
@@ -1,5 +1,5 @@
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
+# https://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
# ===========================================================================
#
# SYNOPSIS
@@ -32,9 +32,9 @@
# LICENSE
#
# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de>
-# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
+# Copyright (c) 2008 Alan W. Irwin
# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net>
-# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
+# Copyright (c) 2008 Andrew Collier
# Copyright (c) 2011 Murray Cumming <murrayc@openismus.com>
#
# This program is free software; you can redistribute it and/or modify it
@@ -48,7 +48,7 @@
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
+# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
@@ -63,11 +63,11 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 8
+#serial 13
AC_DEFUN([AX_PKG_SWIG],[
- # Ubuntu has swig 2.0 as /usr/bin/swig2.0
- AC_PATH_PROGS([SWIG],[swig2.0 swig])
+ # Find path to the "swig" executable.
+ AC_PATH_PROGS([SWIG],[swig swig3.0 swig2.0])
if test -z "$SWIG" ; then
m4_ifval([$3],[$3],[:])
elif test -n "$1" ; then
diff --git a/ax_python_devel.m4 b/ax_python_devel.m4
index 87e7c8c253bb..aff04f68ecc4 100644
--- a/ax_python_devel.m4
+++ b/ax_python_devel.m4
@@ -1,5 +1,5 @@
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_python_devel.html
+# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
# ===========================================================================
#
# SYNOPSIS
@@ -12,8 +12,8 @@
# in your configure.ac.
#
# This macro checks for Python and tries to get the include path to
-# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
-# output variables. It also exports $(PYTHON_EXTRA_LIBS) and
+# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
+# variables. It also exports $(PYTHON_EXTRA_LIBS) and
# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
#
# You can search for some particular version of Python by passing a
@@ -52,7 +52,7 @@
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
+# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
@@ -67,7 +67,7 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 16
+#serial 21
AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
AC_DEFUN([AX_PYTHON_DEVEL],[
@@ -99,7 +99,7 @@ AC_DEFUN([AX_PYTHON_DEVEL],[
This version of the AC@&t@_PYTHON_DEVEL macro
doesn't work properly with versions of Python before
2.1.0. You may need to re-run configure, setting the
-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
+variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
to something else than an empty string.
@@ -137,7 +137,7 @@ variable to configure. See ``configure --help'' for reference.
#
AC_MSG_CHECKING([for the distutils Python package])
ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
- if test -z "$ac_distutils_result"; then
+ if test $? -eq 0; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
@@ -172,7 +172,7 @@ $ac_distutils_result])
# Check for Python library path
#
AC_MSG_CHECKING([for Python library path])
- if test -z "$PYTHON_LDFLAGS"; then
+ if test -z "$PYTHON_LIBS"; then
# (makes two attempts to ensure we've got a version number
# from the interpreter)
ac_python_version=`cat<<EOD | $PYTHON -
@@ -227,25 +227,25 @@ EOD`
then
# use the official shared library
ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
- PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
+ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
else
# old way: use libpython from python_configdir
ac_python_libdir=`$PYTHON -c \
"from distutils.sysconfig import get_python_lib as f; \
import os; \
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
- PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
+ PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
fi
- if test -z "PYTHON_LDFLAGS"; then
+ if test -z "PYTHON_LIBS"; then
AC_MSG_ERROR([
Cannot determine location of your Python DSO. Please check it was installed with
- dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
+ dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
])
fi
fi
- AC_MSG_RESULT([$PYTHON_LDFLAGS])
- AC_SUBST([PYTHON_LDFLAGS])
+ AC_MSG_RESULT([$PYTHON_LIBS])
+ AC_SUBST([PYTHON_LIBS])
#
# Check for site packages
@@ -265,7 +265,7 @@ EOD`
if test -z "$PYTHON_EXTRA_LIBS"; then
PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
conf = distutils.sysconfig.get_config_var; \
- print (conf('LIBS'))"`
+ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
AC_SUBST(PYTHON_EXTRA_LIBS)
@@ -288,8 +288,10 @@ EOD`
AC_MSG_CHECKING([consistency of all components of python development environment])
# save current global flags
ac_save_LIBS="$LIBS"
+ ac_save_LDFLAGS="$LDFLAGS"
ac_save_CPPFLAGS="$CPPFLAGS"
- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
+ LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
+ LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
AC_LANG_PUSH([C])
AC_LINK_IFELSE([
@@ -300,6 +302,7 @@ EOD`
# turn back to default flags
CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
+ LDFLAGS="$ac_save_LDFLAGS"
AC_MSG_RESULT([$pythonexists])
@@ -307,8 +310,8 @@ EOD`
AC_MSG_FAILURE([
Could not link test program to Python. Maybe the main Python library has been
installed in some non-standard library path. If so, pass it to configure,
- via the LDFLAGS environment variable.
- Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
+ via the LIBS environment variable.
+ Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
============================================================================
ERROR!
You probably have to install the development version of the Python package
diff --git a/buffer.c b/buffer.c
index e008831fcc37..8f6aab59eaac 100644
--- a/buffer.c
+++ b/buffer.c
@@ -63,6 +63,7 @@ ldns_buffer_set_capacity(ldns_buffer *buffer, size_t capacity)
ldns_buffer_invariant(buffer);
assert(buffer->_position <= capacity);
+ assert(!buffer->_fixed);
data = (uint8_t *) LDNS_XREALLOC(buffer->_data, uint8_t, capacity);
if (!data) {
@@ -79,7 +80,6 @@ bool
ldns_buffer_reserve(ldns_buffer *buffer, size_t amount)
{
ldns_buffer_invariant(buffer);
- assert(!buffer->_fixed);
if (buffer->_capacity < buffer->_position + amount) {
size_t new_capacity = buffer->_capacity * 3 / 2;
diff --git a/config.guess b/config.guess
index 0967f2afa92a..1817bdce90dc 100755
--- a/config.guess
+++ b/config.guess
@@ -1,12 +1,14 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2016 Free Software Foundation, Inc.
+# Copyright 1992-2022 Free Software Foundation, Inc.
-timestamp='2016-04-02'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-05-25'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -15,7 +17,7 @@ timestamp='2016-04-02'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -27,11 +29,19 @@ timestamp='2016-04-02'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -39,7 +49,7 @@ Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -50,7 +60,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,7 +94,8 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' 1 2 15
+# Just in case it came from the environment.
+GUESS=
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
@@ -96,66 +107,90 @@ trap 'exit 1' 1 2 15
# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039,SC3028
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD=$driver
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #else
+ #elif defined(__GLIBC__)
LIBC=gnu
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
+
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -167,29 +202,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
- arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ # to ELF recently (or will in the future) and ABI.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -205,10 +243,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;;
esac
# Determine ABI tags.
- case "${UNAME_MACHINE_ARCH}" in
+ case $UNAME_MACHINE_ARCH in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
@@ -216,47 +254,68 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}${abi}"
- exit ;;
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
+ *:MidnightBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
+ *:OS108:*:*)
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:Sortix:*:*)
- echo ${UNAME_MACHINE}-unknown-sortix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
+ *:Twizzler:*:*)
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
+ *:Redox:*:*)
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
+ mips:OSF1:*.*)
+ GUESS=mips-dec-osf1
+ ;;
alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -270,7 +329,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
+ case $ALPHA_CPU_TYPE in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
@@ -307,126 +366,121 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
+ GUESS=m68k-unknown-sysv4
+ ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
*:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
+ GUESS=i370-ibm-openedition
+ ;;
*:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
+ GUESS=s390-ibm-zvmoe
+ ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ GUESS=powerpc-ibm-os400
+ ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ GUESS=arm-unknown-riscos
+ ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
+ GUESS=pyramid-pyramid-svr4
+ ;;
DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
+ GUESS=sparc-icl-nx6
+ ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
+ set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
+ case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case `/bin/arch` in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
- exit ;;
+ ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -436,44 +490,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
@@ -482,95 +536,96 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
+ GUESS=powerpc-motorola-powermax
+ ;;
Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
+ GUESS=powerpc-harris-powerunix
+ ;;
m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
+ GUESS=m88k-harris-cxux7
+ ;;
m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
+ GUESS=m88k-motorola-sysv4
+ ;;
m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ GUESS=i586-dg-dgux$UNAME_RELEASE
fi
- exit ;;
+ ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
+ GUESS=m88k-dolphin-sysv3
+ ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
+ GUESS=m88k-tektronix-sysv3
+ ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
+ GUESS=m68k-tektronix-bsd
+ ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
+ GUESS=i386-ibm-aix
+ ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
+ if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
@@ -581,77 +636,77 @@ EOF
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- echo "$SYSTEM_NAME"
+ GUESS=$SYSTEM_NAME
else
- echo rs6000-ibm-aix3.2.5
+ GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
+ GUESS=rs6000-ibm-aix3.2.4
else
- echo rs6000-ibm-aix3.2
+ GUESS=rs6000-ibm-aix3.2
fi
- exit ;;
+ ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
*:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
+ GUESS=rs6000-ibm-aix
+ ;;
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ GUESS=romp-ibm-bsd4.4
+ ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
+ GUESS=rs6000-bull-bosx
+ ;;
DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
+ GUESS=m68k-bull-sysv3
+ ;;
9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
+ GUESS=m68k-hp-bsd
+ ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
+ GUESS=m68k-hp-bsd4.4
+ ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
+ if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
+ case $sc_cpu_version in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
+ case $sc_kernel_bits in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if test "$HP_ARCH" = ""; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
@@ -684,13 +739,13 @@ EOF
exit (0);
}
EOF
- (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = hppa2.0w ]
+ if test "$HP_ARCH" = hppa2.0w
then
- eval $set_cc_for_build
+ set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -709,15 +764,15 @@ EOF
HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
@@ -742,38 +797,38 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ GUESS=hppa1.1-hp-bsd
+ ;;
9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
+ GUESS=hppa1.0-hp-bsd
+ ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-mpeix
+ ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ GUESS=hppa1.1-hp-osf
+ ;;
hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-osf
+ ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ GUESS=$UNAME_MACHINE-unknown-osf1
fi
- exit ;;
+ ;;
parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
+ GUESS=hppa1.1-hp-lites
+ ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
+ GUESS=c1-convex-bsd
+ ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -781,139 +836,148 @@ EOF
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
+ GUESS=c34-convex-bsd
+ ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
+ GUESS=c38-convex-bsd
+ ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
+ GUESS=c4-convex-bsd
+ ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
+ else
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
+ fi
+ ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ case $UNAME_PROCESSOR in
amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
esac
- exit ;;
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case $UNAME_MACHINE in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
+ GUESS=x86_64-pc-cygwin
+ ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
+ *:Minix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -924,177 +988,236 @@ EOF
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
- exit ;;
+ ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
e2k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
k1om:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
+ MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
+ MIPS_ENDIAN=
#else
- CPU=
+ MIPS_ENDIAN=
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ ;;
+ mips64el:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
- exit ;;
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
- exit ;;
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
- exit ;;
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
esac
- exit ;;
+ ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __i386__
+ ABI=x86
+ #else
+ #ifdef __ILP32__
+ ABI=x32
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ x86) CPU=i686 ;;
+ x32) LIBCABI=${LIBC}x32 ;;
+ esac
+ fi
+ GUESS=$CPU-pc-linux-$LIBCABI
+ ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
+ GUESS=i386-sequent-sysv4
+ ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
- exit ;;
+ ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1102,12 +1225,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1117,11 +1240,11 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ GUESS=$UNAME_MACHINE-pc-sysv32
fi
- exit ;;
+ ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1129,31 +1252,31 @@ EOF
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
+ GUESS=i586-pc-msdosdjgpp
+ ;;
Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
+ GUESS=i386-pc-mach3
+ ;;
paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
+ GUESS=i860-intel-osf1
+ ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
- exit ;;
+ ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- echo m68010-convergent-sysv
- exit ;;
+ GUESS=m68010-convergent-sysv
+ ;;
mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
+ GUESS=m68k-convergent-sysv
+ ;;
M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
+ GUESS=m68k-diab-dnix
+ ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1161,9 +1284,9 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
@@ -1172,254 +1295,444 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
+ GUESS=m68k-atari-sysv4
+ ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ GUESS=$UNAME_MACHINE-sni-sysv4
else
- echo ns32k-sni-sysv
+ GUESS=ns32k-sni-sysv
fi
- exit ;;
+ ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ GUESS=i586-unisys-sysv4
+ ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
+ GUESS=i860-stratus-sysv4
+ ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
+ GUESS=hppa1.1-stratus-vos
+ ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
+ GUESS=mips-sony-newsos6
+ ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
- exit ;;
+ ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
+ GUESS=powerpc-be-beos
+ ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
+ GUESS=powerpc-apple-beos
+ ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
+ GUESS=i586-pc-beos
+ ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
+ GUESS=i586-pc-haiku
+ ;;
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
+ GUESS=powerpc-apple-haiku
+ ;;
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
+ GUESS=$UNAME_MACHINE-unknown-haiku
+ ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
*:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-pc-qnx
+ ;;
+ NEO-*:NONSTOP_KERNEL:*:*)
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSR-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
*:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
+ GUESS=mips-compaq-nonstopux
+ ;;
BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
+ GUESS=bs2000-siemens-sysv
+ ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- if test "$cputype" = 386; then
+ if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
*:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
+ GUESS=pdp10-unknown-tops10
+ ;;
*:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
+ GUESS=pdp10-unknown-tenex
+ ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
+ GUESS=pdp10-dec-tops20
+ ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
+ GUESS=pdp10-xkl-tops20
+ ;;
*:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
+ GUESS=pdp10-unknown-tops20
+ ;;
*:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
+ GUESS=pdp10-unknown-its
+ ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
+ GUESS=i386-pc-xenix
+ ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
- exit ;;
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
+ GUESS=x86_64-unknown-onefs
+ ;;
+ *:Unleashed:*:*)
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
+esac
+
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
+echo "$0: unable to guess system type" >&2
+
+case $UNAME_MACHINE:$UNAME_SYSTEM in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
esac
cat >&2 <<EOF
-$0: unable to guess system type
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
config.guess timestamp = $timestamp
@@ -1438,16 +1751,17 @@ hostinfo = `(hostinfo) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
+fi
exit 1
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/config.sub b/config.sub
index 8d39c4ba39fe..dba16e84c77c 100755
--- a/config.sub
+++ b/config.sub
@@ -1,12 +1,14 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2016 Free Software Foundation, Inc.
+# Copyright 1992-2022 Free Software Foundation, Inc.
-timestamp='2016-03-30'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-01-03'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -15,7 +17,7 @@ timestamp='2016-03-30'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -33,7 +35,7 @@ timestamp='2016-03-30'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -50,6 +52,13 @@ timestamp='2016-03-30'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -57,7 +66,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -89,12 +98,12 @@ while test $# -gt 0 ; do
- ) # Use stdin as input.
break ;;
-* )
- echo "$me: invalid option $1$help"
+ echo "$me: invalid option $1$help" >&2
exit 1 ;;
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
@@ -110,1234 +119,1186 @@ case $# in
exit 1;;
esac
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
+# Split fields of configuration type
+# shellcheck disable=SC2162
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+IFS=$saved_IFS
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ basic_os=$field3-$field4
;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova*)
+ basic_machine=$field1
+ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ basic_os=$field3
+ ;;
+ esac
;;
- -psos*)
- os=-psos
+ *-*)
+ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ basic_os=
+ ;;
+ *)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ esac
+ ;;
+ esac
;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ basic_os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ basic_os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ basic_os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ basic_os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ basic_os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ basic_os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ basic_os=sysv3
+ ;;
+ hp300 | hp300hpux)
+ basic_machine=m68k-hp
+ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ basic_os=
+ ;;
+ esac
;;
esac
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
- | avr | avr32 \
- | ba \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | we32k \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
;;
- ms1)
- basic_machine=mt-unknown
+ ibm*)
+ cpu=i370
+ vendor=ibm
;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
- ;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
+ orion105)
+ cpu=clipper
+ vendor=highlevel
;;
- xscaleeb)
- basic_machine=armeb-unknown
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
;;
-
- xscaleel)
- basic_machine=armel-unknown
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | ba-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | e2k-* | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pyramid-* \
- | riscv32-* | riscv64-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
+ cpu=m68000
+ vendor=att
;;
3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- asmjs)
- basic_machine=asmjs-unknown
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=we32k
+ vendor=att
;;
bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
+ cpu=powerpc
+ vendor=ibm
+ basic_os=cnk
;;
decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops10
;;
decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
+ cpu=m68k
+ vendor=motorola
;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+ basic_os=sysv3
;;
encore | umax | mmax)
- basic_machine=ns32k-encore
+ cpu=ns32k
+ vendor=encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ basic_os=${basic_os:-bsd}
;;
fx2800)
- basic_machine=i860-alliant
+ cpu=i860
+ vendor=alliant
;;
genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
+ cpu=ns32k
+ vendor=ns
;;
h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
+ cpu=m68000
+ vendor=hp
;;
hp9k3[2-9][0-9])
- basic_machine=m68k-hp
+ cpu=m68k
+ vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
+ cpu=hppa1.0
+ vendor=hp
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=solaris2
;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ basic_os=${basic_os:-unicos}
;;
iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
+ cpu=mips
+ vendor=sgi
+ case $basic_os in
+ irix*)
;;
*)
- os=-irix4
+ basic_os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
+ cpu=m68000
+ vendor=convergent
;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ basic_os=mint
;;
news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
+ cpu=mips
+ vendor=sony
+ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ basic_os=nextstep2
;;
*)
- os=-nextstep3
+ basic_os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
+ cpu=np1
+ vendor=gould
;;
op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
+ cpu=hppa1.1
+ vendor=oki
+ basic_os=proelf
;;
pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
;;
pbd)
- basic_machine=sparc-tti
+ cpu=sparc
+ vendor=tti
;;
pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
+ cpu=m68k
+ vendor=tti
;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ pc532)
+ cpu=ns32k
+ vendor=pc532
;;
pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
+ cpu=pn
+ vendor=gould
;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ power)
+ cpu=power
+ vendor=ibm
;;
ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
+ cpu=i386
+ vendor=ibm
;;
rm[46]00)
- basic_machine=mips-siemens
+ cpu=mips
+ vendor=siemens
;;
rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
+ cpu=romp
+ vendor=ibm
;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ basic_os=${basic_os:-elf}
;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ basic_os=vxworks
;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+ w65)
+ cpu=w65
+ vendor=wdc
;;
- sequent)
- basic_machine=i386-sequent
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ basic_os=proelf
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
+ none)
+ cpu=none
+ vendor=none
;;
- sh5el)
- basic_machine=sh5le-unknown
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
;;
- sh64)
- basic_machine=sh64-unknown
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
+
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
+ IFS=$saved_IFS
;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
;;
- spur)
- basic_machine=spur-unknown
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
;;
- st2000)
- basic_machine=m68k-tandem
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ basic_os=${basic_os:-unicosmp}
;;
- sun2)
- basic_machine=m68000-sun
+ c90-unknown | c90-cray)
+ vendor=cray
+ basic_os=${Basic_os:-unicos}
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
+ fx80-unknown)
+ vendor=alliant
;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
+ romp-unknown)
+ vendor=ibm
;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
+ mmix-unknown)
+ vendor=knuth
;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
+ rs6000-unknown)
+ vendor=ibm
;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
+ vax-unknown)
+ vendor=dec
;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
+ pdp11-unknown)
+ vendor=dec
;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
+ we32k-unknown)
+ vendor=att
;;
- sun4)
- basic_machine=sparc-sun
+ cydra-unknown)
+ vendor=cydrome
;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
+ i370-ibm*)
+ vendor=ibm
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
+ orion-unknown)
+ vendor=highlevel
;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
+
+ # Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
;;
- t90)
- basic_machine=t90-cray
- os=-unicos
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ basic_os=${basic_os:-bosx}
;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
;;
- tx39)
- basic_machine=mipstx39-unknown
+ blackfin-*)
+ cpu=bfin
+ basic_os=linux
;;
- tx39el)
- basic_machine=mipstx39el-unknown
+ c54x-*)
+ cpu=tic54x
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
+ c55x-*)
+ cpu=tic55x
;;
- tower | tower-32)
- basic_machine=m68k-ncr
+ c6x-*)
+ cpu=tic6x
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
+ e500v[12]-*)
+ cpu=powerpc
+ basic_os=${basic_os}"spe"
;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
+ mips3*-*)
+ cpu=mips64
;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
+ ms1-*)
+ cpu=mt
;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
+ m68knommu-*)
+ cpu=m68k
+ basic_os=linux
;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
;;
- vms)
- basic_machine=vax-dec
- os=-vms
+ openrisc-*)
+ cpu=or32
;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
+ parisc-*)
+ cpu=hppa
+ basic_os=linux
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
;;
- w65*)
- basic_machine=w65-wdc
- os=-none
+ pentium4-*)
+ cpu=i786
;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
+ pc98-*)
+ cpu=i386
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
+ ppc-* | ppcbe-*)
+ cpu=powerpc
;;
- xps | xps100)
- basic_machine=xps100-honeywell
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ppc64-*)
+ cpu=powerpc64
;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
+ sb1-*)
+ cpu=mipsisa64sb1
;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
+ sb1el-*)
+ cpu=mipsisa64sb1el
;;
- none)
- basic_machine=none-none
- os=-none
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
+ spur-*)
+ cpu=spur
;;
- op50n)
- basic_machine=hppa1.1-oki
+ strongarm-* | thumb-*)
+ cpu=arm
;;
- op60c)
- basic_machine=hppa1.1-oki
+ tx39-*)
+ cpu=mipstx39
;;
- romp)
- basic_machine=romp-ibm
+ tx39el-*)
+ cpu=mipstx39el
;;
- mmix)
- basic_machine=mmix-knuth
+ x64-*)
+ cpu=x86_64
;;
- rs6000)
- basic_machine=rs6000-ibm
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- vax)
- basic_machine=vax-dec
+ arm64-* | aarch64le-*)
+ cpu=aarch64
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ basic_os=${basic_os:-elf}
;;
- pdp11)
- basic_machine=pdp11-dec
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
;;
- we32k)
- basic_machine=we32k-att
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
+ crx-*)
+ basic_os=${basic_os:-elf}
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
;;
- cydra)
- basic_machine=cydra-cydrome
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
;;
- orion)
- basic_machine=orion-highlevel
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
;;
- orion105)
- basic_machine=clipper-highlevel
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
;;
+
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb | arc32 | arc64 \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bpf | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | loongarch32 | loongarch64 | loongarchx32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64eb | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r3 | mipsisa32r3el \
+ | mipsisa32r5 | mipsisa32r5el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r3 | mipsisa64r3el \
+ | mipsisa64r5 | mipsisa64r5el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | picochip \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
+ | score \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | w65 \
+ | wasm32 | wasm64 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+case $vendor in
+ digital*)
+ vendor=dec
;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ commodore*)
+ vendor=cbm
;;
*)
;;
@@ -1345,203 +1306,215 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x"$os" != x"" ]
+if test x$basic_os != x
then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+ ;;
+ os2-emx)
+ kernel=os2
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ *)
+ kernel=
+ os=$basic_os
;;
- -solaris)
- os=-solaris2
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
+case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -svr4*)
- os=-sysv4
+ bluegene*)
+ os=cnk
;;
- -unixware*)
- os=-sysv4.2uw
+ solaris1 | solaris1.*)
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ solaris)
+ os=solaris2
;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* | -cloudabi* | -sortix* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
+ unixware*)
+ os=sysv4.2uw
;;
- -nto-qnx*)
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ isc)
+ os=isc2.2
;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ sco6)
+ os=sco5v6
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ sco5)
+ os=sco3.2v5
;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ sco4)
+ os=sco3.2v4
;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ sco3.2.[4-9]*)
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ sco*v* | scout)
+ # Don't match below
;;
- -opened*)
- os=-openedition
+ sco*)
+ os=sco3.2v2
;;
- -os400*)
- os=-os400
+ psos*)
+ os=psos
;;
- -wince*)
- os=-wince
+ qnx*)
+ os=qnx
;;
- -osfrose*)
- os=-osfrose
+ hiux*)
+ os=hiuxwe2
;;
- -osf*)
- os=-osf
+ lynx*178)
+ os=lynxos178
;;
- -utek*)
- os=-bsd
+ lynx*5)
+ os=lynxos5
;;
- -dynix*)
- os=-bsd
+ lynxos*)
+ # don't get caught up in next wildcard
;;
- -acis*)
- os=-aos
+ lynx*)
+ os=lynxos
;;
- -atheos*)
- os=-atheos
+ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -syllable*)
- os=-syllable
+ opened*)
+ os=openedition
;;
- -386bsd)
- os=-bsd
+ os400*)
+ os=os400
;;
- -ctix* | -uts*)
- os=-sysv
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -nova*)
- os=-rtmk-nova
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -ns2 )
- os=-nextstep2
+ wince*)
+ os=wince
;;
- -nsk*)
- os=-nsk
+ utek*)
+ os=bsd
;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ dynix*)
+ os=bsd
;;
- -sinix*)
- os=-sysv4
+ acis*)
+ os=aos
;;
- -tpf*)
- os=-tpf
+ atheos*)
+ os=atheos
;;
- -triton*)
- os=-sysv3
+ syllable*)
+ os=syllable
;;
- -oss*)
- os=-sysv3
+ 386bsd)
+ os=bsd
+ ;;
+ ctix* | uts*)
+ os=sysv
;;
- -svr4)
- os=-sysv4
+ nova*)
+ os=rtmk-nova
;;
- -svr3)
- os=-sysv3
+ ns2)
+ os=nextstep2
;;
- -sysvr4)
- os=-sysv4
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
;;
- # This must come after -sysvr4.
- -sysv*)
+ sinix*)
+ os=sysv4
;;
- -ose*)
- os=-ose
+ tpf*)
+ os=tpf
;;
- -es1800*)
- os=-ose
+ triton*)
+ os=sysv3
;;
- -xenix)
- os=-xenix
+ oss*)
+ os=sysv3
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ svr4*)
+ os=sysv4
;;
- -aros*)
- os=-aros
+ svr3)
+ os=sysv3
;;
- -zvmoe)
- os=-zvmoe
+ sysvr4)
+ os=sysv4
;;
- -dicos*)
- os=-dicos
+ ose*)
+ os=ose
;;
- -nacl*)
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -ios)
+ dicos*)
+ os=dicos
;;
- -none)
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=elf
+ ;;
+ esac
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1554,261 +1527,363 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $basic_machine in
+kernel=
+case $cpu-$vendor in
score-*)
- os=-elf
+ os=elf
;;
spu-*)
- os=-elf
+ os=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
- os=-aout
+ os=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=coff
;;
c8051-*)
- os=-elf
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
;;
hexagon-*)
- os=-elf
+ os=elf
;;
tic54x-*)
- os=-coff
+ os=coff
;;
tic55x-*)
- os=-coff
+ os=coff
;;
tic6x-*)
- os=-coff
+ os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=aout
;;
mep-*)
- os=-elf
+ os=elf
;;
mips*-cisco)
- os=-elf
+ os=elf
;;
mips*-*)
- os=-elf
+ os=elf
;;
or32-*)
- os=-coff
+ os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
- *-be)
- os=-beos
+ pru-*)
+ os=elf
;;
- *-haiku)
- os=-haiku
+ *-be)
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
- *-next )
- os=-nextstep
+ *-next)
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=coff
;;
*-*bug)
- os=-coff
+ os=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
;;
*)
- os=-none
+ os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+ | linux-musl* | linux-relibc* | linux-uclibc* )
+ ;;
+ uclinux-uclibc* )
+ ;;
+ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
+ ;;
+ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+ ;;
+ nto-qnx*)
+ ;;
+ os2-emx)
+ ;;
+ *-eabi* | *-gnueabi*)
+ ;;
+ -*)
+ # Blank kernel with real OS is always fine.
+ ;;
+ *-*)
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
+case $vendor in
+ unknown)
+ case $cpu-$os in
+ *-riscix*)
vendor=acorn
;;
- -sunos*)
+ *-sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ *-cnk* | *-aix*)
vendor=ibm
;;
- -beos*)
+ *-beos*)
vendor=be
;;
- -hpux*)
+ *-hpux*)
vendor=hp
;;
- -mpeix*)
+ *-mpeix*)
vendor=hp
;;
- -hiux*)
+ *-hiux*)
vendor=hitachi
;;
- -unos*)
+ *-unos*)
vendor=crds
;;
- -dgux*)
+ *-dgux*)
vendor=dg
;;
- -luna*)
+ *-luna*)
vendor=omron
;;
- -genix*)
+ *-genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ *-clix*)
+ vendor=intergraph
+ ;;
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- -os400*)
+ s390-* | s390x-*)
vendor=ibm
;;
- -ptx*)
+ *-ptx*)
vendor=sequent
;;
- -tpf*)
+ *-tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ *-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
- -aux*)
+ *-aux*)
vendor=apple
;;
- -hms*)
+ *-hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ *-mpw* | *-macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ *-vos*)
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
exit
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/configure b/configure
index cd087de20bfe..e032179f176d 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,12 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ldns 1.7.0.
+# Generated by GNU Autoconf 2.71 for ldns 1.8.3.
#
# Report bugs to <libdns@nlnetlabs.nl>.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -16,14 +17,16 @@
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -33,46 +36,46 @@ esac
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
fi
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -96,8 +92,12 @@ case $0 in #((
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -109,30 +109,10 @@ if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
@@ -154,20 +134,22 @@ esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
-else
+else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
@@ -187,18 +169,20 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
-else
+else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1
test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
@@ -206,31 +190,40 @@ test \$(( 1 + 1 )) = 2 || exit 1
ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
PATH=/empty FPATH=/empty; export PATH FPATH
test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null
+then :
as_have_required=yes
-else
+else $as_nop
as_have_required=no
fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
-else
+else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
+ as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
break 2
fi
fi
@@ -238,14 +231,21 @@ fi
esac
as_found=false
done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
- if test "x$CONFIG_SHELL" != x; then :
+ if test "x$CONFIG_SHELL" != x
+then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
@@ -263,18 +263,19 @@ esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ if test x$as_have_required = xno
+then :
+ printf "%s\n" "$0: This script requires a shell more modern than all"
+ printf "%s\n" "$0: the shells that I found on your system."
+ if test ${ZSH_VERSION+y} ; then
+ printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and
+ printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: libdns@nlnetlabs.nl about your system, including any
$0: error possibly output before this message. Then install
$0: a modern shell, or manually run the script under such a
@@ -302,6 +303,7 @@ as_fn_unset ()
}
as_unset=as_fn_unset
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -319,6 +321,14 @@ as_fn_exit ()
as_fn_set_status $1
exit $1
} # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
@@ -333,7 +343,7 @@ as_fn_mkdir_p ()
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -342,7 +352,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -381,12 +391,13 @@ as_fn_executable_p ()
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -398,18 +409,27 @@ fi # as_fn_append
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
@@ -421,9 +441,9 @@ as_fn_error ()
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -450,7 +470,7 @@ as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -494,7 +514,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
@@ -508,6 +528,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
exit
}
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -521,6 +545,13 @@ case `echo -n x` in #(((((
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -590,48 +621,45 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ldns'
PACKAGE_TARNAME='libdns'
-PACKAGE_VERSION='1.7.0'
-PACKAGE_STRING='ldns 1.7.0'
+PACKAGE_VERSION='1.8.3'
+PACKAGE_STRING='ldns 1.8.3'
PACKAGE_BUGREPORT='libdns@nlnetlabs.nl'
PACKAGE_URL=''
ac_unique_file="packet.c"
# Factoring default headers for most tests.
ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
+#ifdef HAVE_STDLIB_H
# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
#endif
#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
# include <string.h>
#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"
+ac_header_c_list=
+ac_func_c_list=
ac_subst_vars='LTLIBOBJS
CONFIG_FILES
ldns_build_config_have_attr_unused
@@ -658,6 +686,9 @@ LIBSSL_CPPFLAGS
ldns_build_config_use_dane_ta_usage
ldns_build_config_use_dane_verify
ldns_build_config_use_dane
+ldns_build_config_use_ed448
+ldns_build_config_use_ed25519
+ldns_build_config_use_dsa
RUNTIME_PATH
HAVE_SSL
libtool
@@ -681,7 +712,7 @@ SWIGPY3
PYTHON_EXTRA_LDFLAGS
PYTHON_EXTRA_LIBS
PYTHON_SITE_PKG
-PYTHON_LDFLAGS
+PYTHON_LIBS
PYTHON_CPPFLAGS
PYTHON
PYTHON_VERSION
@@ -723,6 +754,8 @@ ac_ct_DUMPBIN
DUMPBIN
LD
FGREP
+EGREP
+GREP
SED
host_os
host_vendor
@@ -733,9 +766,6 @@ build_vendor
build_cpu
build
LIBTOOL
-EGREP
-GREP
-CPP
OBJEXT
EXEEXT
ac_ct_CC
@@ -824,7 +854,11 @@ enable_rrtype_rkey
enable_rrtype_openpgpkey
enable_rrtype_ta
enable_rrtype_avc
+enable_rrtype_doa
+enable_rrtype_amtrelay
+enable_rrtype_svcb_https
enable_rpath
+with_xcode_sdk
with_trust_anchor
with_ca_file
with_ca_path
@@ -837,7 +871,6 @@ CFLAGS
LDFLAGS
LIBS
CPPFLAGS
-CPP
LT_SYS_LIBRARY_PATH
PYTHON_VERSION'
@@ -908,8 +941,6 @@ do
*) ac_optarg=yes ;;
esac
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
@@ -950,9 +981,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -976,9 +1007,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1189,9 +1220,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1205,9 +1236,9 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1251,9 +1282,9 @@ Try \`$0 --help' for more information"
*)
# FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
@@ -1269,7 +1300,7 @@ if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1333,7 +1364,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -1390,7 +1421,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ldns 1.7.0 to adapt to many kinds of systems.
+\`configure' configures ldns 1.8.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1456,7 +1487,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ldns 1.7.0:";;
+ short | recursive ) echo "Configuration of ldns 1.8.3:";;
esac
cat <<\_ACEOF
@@ -1475,11 +1506,13 @@ Optional Features:
--enable-poll This platform supports poll(7)
--disable-sha2 Disable SHA256 and SHA512 RRSIG support
--disable-gost Disable GOST support
- --enable-gost-anyway Enable GOST even whithout a GOST engine installed
+ --enable-gost-anyway Enable GOST even without a GOST engine installed
--disable-ecdsa Disable ECDSA support
--disable-dsa Disable DSA support
- --enable-ed25519 Enable ED25519 support (experimental)
- --enable-ed448 Enable ED448 support (experimental)
+ --disable-ed25519 Disable (experimental) ED25519 support. Default is
+ detect
+ --disable-ed448 Disable (experimental) ED448 support. Default is
+ detect
--disable-dane Disable DANE support
--disable-dane-verify Disable DANE verify support
--disable-dane-ta-usage Disable DANE-TA usage type support
@@ -1490,6 +1523,11 @@ Optional Features:
Disable openpgpkey RR type.
--enable-rrtype-ta Enable draft RR type ta.
--enable-rrtype-avc Enable draft RR type avc.
+ --enable-rrtype-doa Enable draft RR type DOA.
+ --enable-rrtype-amtrelay
+ Enable draft RR type AMTRELAY.
+ --disable-rrtype-svcb-https
+ Disable RR types SVCB and HTTPS.
--disable-rpath disable hardcoded rpath (default=enabled)
Optional Packages:
@@ -1513,6 +1551,7 @@ Optional Packages:
--with-ssl=pathname enable SSL (will check /usr/local/ssl /usr/lib/ssl
/usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw
/usr)
+ --with-xcode-sdk Set xcode SDK version. Default is autodetect
--with-trust-anchor=KEYFILE
Default location of the trust anchor file for drill
and ldns-dane. [default=SYSCONFDIR/unbound/root.key]
@@ -1528,7 +1567,6 @@ Some influential environment variables:
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
PYTHON_VERSION
@@ -1555,9 +1593,9 @@ if test "$ac_init_help" = "recursive"; then
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1585,7 +1623,8 @@ esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
+ # Check for configure.gnu first; this name is used for a wrapper for
+ # Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1593,7 +1632,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
@@ -1602,10 +1641,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ldns configure 1.7.0
-generated by GNU Autoconf 2.69
+ldns configure 1.8.3
+generated by GNU Autoconf 2.71
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1622,14 +1661,14 @@ fi
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
+ rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1637,14 +1676,15 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
+ } && test -s conftest.$ac_objext
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1654,176 +1694,6 @@ fi
} # ac_fn_c_try_compile
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------- ##
-## Report this to libdns@nlnetlabs.nl ##
-## ---------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
@@ -1831,26 +1701,28 @@ fi
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
@@ -1861,14 +1733,14 @@ $as_echo "$ac_res" >&6; }
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
+ rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -1876,17 +1748,18 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
- }; then :
+ }
+then :
ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1907,11 +1780,12 @@ fi
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
@@ -1919,16 +1793,9 @@ else
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+ which can conflict with char $2 (); below. */
+#include <limits.h>
#undef $2
/* Override any GCC internal prototype to avoid an error.
@@ -1946,24 +1813,25 @@ choke me
#endif
int
-main ()
+main (void)
{
return $2 ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
@@ -1975,17 +1843,18 @@ $as_echo "$ac_res" >&6; }
ac_fn_c_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
if (sizeof ($2))
return 0;
@@ -1993,12 +1862,13 @@ if (sizeof ($2))
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
if (sizeof (($2)))
return 0;
@@ -2006,41 +1876,45 @@ if (sizeof (($2)))
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
eval "$3=yes"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
as_decl_name=`echo $2|sed 's/ *(.*//'`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+printf %s "checking whether $as_decl_name is declared... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ eval ac_save_FLAGS=\$$6
+ as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
#ifndef $as_decl_name
#ifdef __cplusplus
@@ -2054,19 +1928,65 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$3=yes"
-else
+else $as_nop
eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ eval $6=\$ac_save_FLAGS
+
fi
eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-} # ac_fn_c_check_decl
+} # ac_fn_check_decl
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
# --------------------------------------------
@@ -2082,7 +2002,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
static int test_array [1 - 2 * !(($2) >= 0)];
test_array [0] = 0;
@@ -2092,14 +2012,15 @@ return test_array [0];
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_lo=0 ac_mid=0
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
@@ -2109,9 +2030,10 @@ return test_array [0];
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_hi=$ac_mid; break
-else
+else $as_nop
as_fn_arith $ac_mid + 1 && ac_lo=$as_val
if test $ac_lo -le $ac_mid; then
ac_lo= ac_hi=
@@ -2119,14 +2041,14 @@ else
fi
as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
static int test_array [1 - 2 * !(($2) < 0)];
test_array [0] = 0;
@@ -2136,14 +2058,15 @@ return test_array [0];
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_hi=-1 ac_mid=-1
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
test_array [0] = 0;
@@ -2153,9 +2076,10 @@ return test_array [0];
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_lo=$ac_mid; break
-else
+else $as_nop
as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
if test $ac_mid -le $ac_hi; then
ac_lo= ac_hi=
@@ -2163,14 +2087,14 @@ else
fi
as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
-else
+else $as_nop
ac_lo= ac_hi=
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Binary search between lo and hi bounds.
while test "x$ac_lo" != "x$ac_hi"; do
as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
@@ -2178,7 +2102,7 @@ while test "x$ac_lo" != "x$ac_hi"; do
/* end confdefs.h. */
$4
int
-main ()
+main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
@@ -2188,12 +2112,13 @@ return test_array [0];
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_hi=$ac_mid
-else
+else $as_nop
as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
case $ac_lo in #((
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
@@ -2203,12 +2128,12 @@ esac
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
+static long int longval (void) { return $2; }
+static unsigned long int ulongval (void) { return $2; }
#include <stdio.h>
#include <stdlib.h>
int
-main ()
+main (void)
{
FILE *f = fopen ("conftest.val", "w");
@@ -2236,9 +2161,10 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
+else $as_nop
ac_retval=1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -2258,16 +2184,17 @@ rm -f conftest.val
ac_fn_c_check_member ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+printf %s "checking for $2.$3... " >&6; }
+if eval test \${$4+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
-main ()
+main (void)
{
static $2 ac_aggr;
if (ac_aggr.$3)
@@ -2276,14 +2203,15 @@ return 0;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$4=yes"
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
-main ()
+main (void)
{
static $2 ac_aggr;
if (sizeof ac_aggr.$3)
@@ -2292,29 +2220,50 @@ return 0;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
eval "$4=yes"
-else
+else $as_nop
eval "$4=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$4
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
+ac_configure_args_raw=
+for ac_arg
+do
+ case $ac_arg in
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+ *$as_nl*)
+ ac_safe_unquote= ;;
+ *)
+ ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
+ ac_unsafe_a="$ac_unsafe_z#~"
+ ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+ ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ldns $as_me 1.7.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+It was created by ldns $as_me 1.8.3, which was
+generated by GNU Autoconf 2.71. Invocation command line was
- $ $0 $@
+ $ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
@@ -2347,8 +2296,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
@@ -2383,7 +2336,7 @@ do
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2418,11 +2371,13 @@ done
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
+ # Sanitize IFS.
+ IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
- $as_echo "## ---------------- ##
+ printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
@@ -2433,8 +2388,8 @@ trap 'exit_status=$?
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -2458,7 +2413,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- $as_echo "## ----------------- ##
+ printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
@@ -2466,14 +2421,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
+ printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
@@ -2481,15 +2436,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
- $as_echo "$ac_var='\''$ac_val'\''"
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
- $as_echo "## ----------- ##
+ printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
@@ -2497,8 +2452,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
echo
fi
test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
+ printf "%s\n" "$as_me: caught signal $ac_signal"
+ printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2512,63 +2467,48 @@ ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
+ ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
+ ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
+ ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ case $ac_site_file in #(
+ */*) :
+ ;; #(
+ *) :
+ ac_site_file=./$ac_site_file ;;
+esac
+ if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
@@ -2578,19 +2518,439 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+ Do not test the value of __STDC__, because some compilers set it to 0
+ while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not \xHH hex character constants.
+ These do not provoke an error unfortunately, instead are silently treated
+ as an "x". The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously \x00 != x always comes out true, for an
+ array size at least. It is necessary to write \x00 == 0 to get something
+ that is true only with -std. */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+ int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+ #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str = "";
+ int number = 0;
+ float fnumber = 0;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case '\''s'\'': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case '\''d'\'': // int
+ number = va_arg (args_copy, int);
+ break;
+ case '\''f'\'': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+
+ return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+ // Check bool.
+ _Bool success = false;
+ success |= (argc != 0);
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[0] = argv[0][0];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+ || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+ int_alignment = _Alignof (int),
+ int_array_alignment = _Alignof (int[100]),
+ char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+ int x;
+ _Static_assert (sizeof (int) <= sizeof (long int),
+ "_Static_assert does not work in struct");
+ long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+ union {
+ struct { int i; int j; };
+ struct { int k; long int l; } w;
+ };
+ int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+ _Static_assert ((offsetof (struct anonymous, i)
+ == offsetof (struct anonymous, w.k)),
+ "Anonymous union alignment botch");
+ v1.i = 2;
+ v1.w.k = 5;
+ ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ ${ac_c_conftest_c11_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
+as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
+as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
+as_fn_append ac_func_c_list " fork HAVE_FORK"
+as_fn_append ac_func_c_list " vfork HAVE_VFORK"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="config.guess config.sub ltmain.sh"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ as_found=:
+
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
+ ac_aux_dir_found=yes
+ ac_install_sh=
+ for ac_aux in $ac_aux_files
+ do
+ # As a special case, if "install-sh" is required, that requirement
+ # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+ # and $ac_install_sh is set appropriately for whichever one is found.
+ if test x"$ac_aux" = x"install-sh"
+ then
+ if test -f "${as_dir}install-sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
+ ac_install_sh="${as_dir}install-sh -c"
+ elif test -f "${as_dir}install.sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
+ ac_install_sh="${as_dir}install.sh -c"
+ elif test -f "${as_dir}shtool"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
+ ac_install_sh="${as_dir}shtool install -c"
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+ else
+ break
+ fi
+ fi
+ else
+ if test -f "${as_dir}${ac_aux}"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+ else
+ break
+ fi
+ fi
+ fi
+ done
+ if test "$ac_aux_dir_found" = yes; then
+ ac_aux_dir="$as_dir"
+ break
+ fi
+ ac_first_candidate=false
+
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+ ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+ ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+ ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -2601,12 +2961,12 @@ for ac_var in $ac_precious_vars; do
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
@@ -2615,24 +2975,24 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
@@ -2642,11 +3002,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi
done
if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+ and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2663,9 +3024,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# needed to build correct soname
LDNS_VERSION_MAJOR=1
-LDNS_VERSION_MINOR=7
+LDNS_VERSION_MINOR=8
-LDNS_VERSION_MICRO=0
+LDNS_VERSION_MICRO=3
# Library version
@@ -2680,9 +3041,24 @@ LDNS_VERSION_MICRO=0
# set age to 0
#
# ldns-1.6.17 and before had a .so with version same as VERSION_INFO
-# ldns-1.7.0 will have libversion 2:0:0
+# ldns-1.7.0 had libversion 2:0:0
+# ldns-1.7.1 had libversion 3:0:0 (though it should have had 3:0:1)
+# ldns-1.8.0 had libversion 4:0:2 (though it should have had 4:0:1)
+# ldns-1.8.1 had libversion 5:0:2
+# ldns-1.8.1 had libversion 6:0:3
+# ldns-1.8.2 had libversion 7:0:4
+# ldns-1.8.3 has libversion 8:0:5
#
-VERSION_INFO=2:0:0
+VERSION_INFO=8:0:5
+
+
+
+
+
+
+
+
+
ac_ext=c
@@ -2693,11 +3069,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2705,11 +3082,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2720,11 +3101,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2733,11 +3114,12 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -2745,11 +3127,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2760,11 +3146,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
@@ -2772,8 +3158,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -2786,11 +3172,12 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2798,11 +3185,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2813,11 +3204,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2826,11 +3217,12 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2839,15 +3231,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2863,18 +3259,18 @@ if test $ac_prog_rejected = yes; then
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2885,11 +3281,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -2897,11 +3294,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2912,11 +3313,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2929,11 +3330,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -2941,11 +3343,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -2956,11 +3362,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -2972,8 +3378,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -2981,25 +3387,129 @@ esac
fi
fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -3009,7 +3519,7 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
@@ -3017,7 +3527,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -3029,9 +3539,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -3052,11 +3562,12 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
@@ -3073,7 +3584,7 @@ do
# certainly right.
break;;
*.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
@@ -3089,44 +3600,46 @@ do
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
-else
+else $as_nop
ac_file=''
fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3140,15 +3653,15 @@ for ac_file in conftest.exe conftest conftest.*; do
* ) break;;
esac
done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
@@ -3157,7 +3670,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
-main ()
+main (void)
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
@@ -3169,8 +3682,8 @@ _ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
@@ -3178,10 +3691,10 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
@@ -3189,39 +3702,40 @@ $as_echo "$ac_try_echo"; } >&5
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
@@ -3235,11 +3749,12 @@ case "(($ac_try" in
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
@@ -3248,31 +3763,32 @@ $as_echo "$ac_try_echo"; } >&5
break;;
esac
done
-else
- $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -3282,29 +3798,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
@@ -3313,57 +3833,60 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
-else
+else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
@@ -3378,232 +3901,144 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
+$ac_c_conftest_c11_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
+$ac_c_conftest_c99_program
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <ac_nonexistent.h>
+$ac_c_conftest_c89_program
_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c89=$ac_arg
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-else
- # Broken: fails on valid input.
-continue
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -3613,365 +4048,188 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
+ if test $ac_cache; then
+ ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+ if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+ printf "%s\n" "#define $ac_item 1" >> confdefs.h
fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ ac_header= ac_cache=
+ elif test $ac_header; then
+ ac_cache=$ac_item
+ else
+ ac_header=$ac_item
fi
-else
- ac_cv_path_GREP=$GREP
-fi
+done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
- fi
+
+
+
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
+
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
+
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if test ${ac_cv_safe_to_define___extensions__+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+# define __EXTENSIONS__ 1
+ $ac_includes_default
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_safe_to_define___extensions__=yes
+else $as_nop
+ ac_cv_safe_to_define___extensions__=no
fi
-rm -f conftest*
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+if test ${ac_cv_should_define__xopen_source+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_should_define__xopen_source=no
+ if test $ac_cv_header_wchar_h = yes
+then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
+ #include <wchar.h>
+ mbstate_t x;
+int
+main (void)
+{
-fi
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ #define _XOPEN_SOURCE 500
+ #include <wchar.h>
+ mbstate_t x;
int
-main ()
+main (void)
{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
+
+ ;
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_should_define__xopen_source=yes
fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+ printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
-fi
+ printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
-fi
+ printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
-done
+ printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
- if test "$MINIX" = yes; then
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
+ printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
-$as_echo "#define _MINIX 1" >>confdefs.h
-
- fi
+ printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
+ if test $ac_cv_header_minix_config_h = yes
+then :
+ MINIX=yes
+ printf "%s\n" "#define _MINIX 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+ printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main ()
-{
+ printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else $as_nop
+ MINIX=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+ if test $ac_cv_safe_to_define___extensions__ = yes
+then :
+ printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+fi
+ if test $ac_cv_should_define__xopen_source = yes
+then :
+ printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+fi
if test "$ac_cv_header_minix_config_h" = "yes"; then
-$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h
+printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
fi
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
case `pwd` in
*\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
esac
@@ -3991,28 +4249,32 @@ macro_revision='2.4.6'
+
ltmain=$ac_aux_dir/ltmain.sh
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+ # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -4031,21 +4293,22 @@ IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -4085,8 +4348,8 @@ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+printf %s "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -4112,12 +4375,12 @@ func_echo_all ()
}
case $ECHO in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
+ printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+printf "%s\n" "printf" >&6; } ;;
+ print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+printf "%s\n" "print -r" >&6; } ;;
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+printf "%s\n" "cat" >&6; } ;;
esac
@@ -4133,11 +4396,12 @@ esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+printf %s "checking for a sed that does not truncate output... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
@@ -4151,10 +4415,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in sed gsed
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
@@ -4163,13 +4432,13 @@ case `"$ac_path_SED" --version 2>&1` in
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
+ printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4197,8 +4466,8 @@ else
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
@@ -4215,11 +4484,154 @@ Xsed="$SED -e 1s/^X//"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+printf %s "checking for grep that handles long lines and -e... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in grep ggrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf "%s\n" "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in egrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf "%s\n" "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+printf %s "checking for fgrep... " >&6; }
+if test ${ac_cv_path_FGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
then ac_cv_path_FGREP="$GREP -F"
else
@@ -4230,10 +4642,15 @@ else
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in fgrep
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
@@ -4242,13 +4659,13 @@ case `"$ac_path_FGREP" --version 2>&1` in
ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
*)
ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
+ printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
+ printf "%s\n" 'FGREP' >> "conftest.nl"
"$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4277,8 +4694,8 @@ fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+printf "%s\n" "$ac_cv_path_FGREP" >&6; }
FGREP="$ac_cv_path_FGREP"
@@ -4303,17 +4720,18 @@ test -z "$GREP" && GREP=grep
# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
+if test ${with_gnu_ld+y}
+then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
+else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
@@ -4342,15 +4760,16 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
;;
esac
elif test yes = "$with_gnu_ld"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if test ${lt_cv_path_LD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
@@ -4379,18 +4798,19 @@ fi
LD=$lt_cv_path_LD
if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${lt_cv_prog_gnu_ld+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
@@ -4401,8 +4821,8 @@ case `$LD -v 2>&1 </dev/null` in
;;
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -4413,11 +4833,12 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test ${lt_cv_path_NM+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$NM"; then
# Let the user override the test.
lt_cv_path_NM=$NM
@@ -4467,8 +4888,8 @@ else
: ${lt_cv_path_NM=no}
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+printf "%s\n" "$lt_cv_path_NM" >&6; }
if test no != "$lt_cv_path_NM"; then
NM=$lt_cv_path_NM
else
@@ -4481,11 +4902,12 @@ else
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DUMPBIN"; then
ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
@@ -4493,11 +4915,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4508,11 +4934,11 @@ fi
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+printf "%s\n" "$DUMPBIN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4525,11 +4951,12 @@ if test -z "$DUMPBIN"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DUMPBIN"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
@@ -4537,11 +4964,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4552,11 +4983,11 @@ fi
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4568,8 +4999,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DUMPBIN=$ac_ct_DUMPBIN
@@ -4597,11 +5028,12 @@ test -z "$NM" && NM=nm
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+printf %s "checking the name lister ($NM) interface... " >&6; }
+if test ${lt_cv_nm_interface+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
@@ -4617,26 +5049,27 @@ else
fi
rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+printf "%s\n" "$lt_cv_nm_interface" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf "%s\n" "no, using $LN_S" >&6; }
fi
# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+printf %s "checking the maximum length of command line arguments... " >&6; }
+if test ${lt_cv_sys_max_cmd_len+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
i=0
teststring=ABCD
@@ -4763,11 +5196,11 @@ else
fi
if test -n "$lt_cv_sys_max_cmd_len"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf "%s\n" "none" >&6; }
fi
max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -4811,11 +5244,12 @@ esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+printf %s "checking how to convert $build file names to $host format... " >&6; }
+if test ${lt_cv_to_host_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $host in
*-*-mingw* )
case $build in
@@ -4851,18 +5285,19 @@ esac
fi
to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+printf %s "checking how to convert $build file names to toolchain format... " >&6; }
+if test ${lt_cv_to_tool_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
#assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
@@ -4878,22 +5313,23 @@ esac
fi
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+printf %s "checking for $LD option to reload object files... " >&6; }
+if test ${lt_cv_ld_reload_flag+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_reload_flag='-r'
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
@@ -4926,11 +5362,12 @@ esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
@@ -4938,11 +5375,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4953,11 +5394,11 @@ fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -4966,11 +5407,12 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
ac_ct_OBJDUMP=$OBJDUMP
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
@@ -4978,11 +5420,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4993,11 +5439,11 @@ fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OBJDUMP" = x; then
@@ -5005,8 +5451,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OBJDUMP=$ac_ct_OBJDUMP
@@ -5025,11 +5471,12 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+printf %s "checking how to recognize dependent libraries... " >&6; }
+if test ${lt_cv_deplibs_check_method+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_deplibs_check_method='unknown'
@@ -5225,8 +5672,8 @@ os2*)
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
file_magic_glob=
want_nocaseglob=no
@@ -5270,11 +5717,12 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
@@ -5282,11 +5730,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5297,11 +5749,11 @@ fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5310,11 +5762,12 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
ac_ct_DLLTOOL=$DLLTOOL
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
@@ -5322,11 +5775,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5337,11 +5794,11 @@ fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DLLTOOL" = x; then
@@ -5349,8 +5806,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DLLTOOL=$ac_ct_DLLTOOL
@@ -5370,11 +5827,12 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+printf %s "checking how to associate runtime and link libraries... " >&6; }
+if test ${lt_cv_sharedlib_from_linklib_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
@@ -5397,8 +5855,8 @@ cygwin* | mingw* | pw32* | cegcc*)
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
@@ -5413,11 +5871,12 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
@@ -5425,11 +5884,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5440,11 +5903,11 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5457,11 +5920,12 @@ if test -z "$AR"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
@@ -5469,11 +5933,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5484,11 +5952,11 @@ fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5500,8 +5968,8 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
@@ -5509,7 +5977,7 @@ esac
fi
: ${AR=ar}
-: ${AR_FLAGS=cru}
+: ${AR_FLAGS=cr}
@@ -5521,30 +5989,32 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+printf %s "checking for archiver @FILE support... " >&6; }
+if test ${lt_cv_ar_at_file+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ar_at_file=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
echo conftest.$ac_objext > conftest.lst
lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -eq "$ac_status"; then
# Ensure the archiver fails upon bogus file names.
@@ -5552,7 +6022,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -ne "$ac_status"; then
lt_cv_ar_at_file=@
@@ -5561,11 +6031,11 @@ if ac_fn_c_try_compile "$LINENO"; then :
rm -f conftest.* libconftest.a
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+printf "%s\n" "$lt_cv_ar_at_file" >&6; }
if test no = "$lt_cv_ar_at_file"; then
archiver_list_spec=
@@ -5582,11 +6052,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
@@ -5594,11 +6065,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5609,11 +6084,11 @@ fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5622,11 +6097,12 @@ if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
@@ -5634,11 +6110,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5649,11 +6129,11 @@ fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
@@ -5661,8 +6141,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
@@ -5681,11 +6161,12 @@ test -z "$STRIP" && STRIP=:
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
@@ -5693,11 +6174,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5708,11 +6193,11 @@ fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf "%s\n" "$RANLIB" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5721,11 +6206,12 @@ if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
@@ -5733,11 +6219,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5748,11 +6238,11 @@ fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf "%s\n" "$ac_ct_RANLIB" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_RANLIB" = x; then
@@ -5760,8 +6250,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
@@ -5825,11 +6315,12 @@ for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
@@ -5837,11 +6328,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5852,11 +6347,11 @@ fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -5892,11 +6387,12 @@ compiler=$CC
# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+printf %s "checking command to parse $NM output from $compiler object... " >&6; }
+if test ${lt_cv_sys_global_symbol_pipe+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
@@ -6048,15 +6544,12 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
@@ -6124,7 +6617,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest$ac_exeext; then
pipe_works=yes
fi
@@ -6159,11 +6652,11 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
fi
# Response file support.
@@ -6209,13 +6702,14 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+printf %s "checking for sysroot... " >&6; }
# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
+if test ${with_sysroot+y}
+then :
withval=$with_sysroot;
-else
+else $as_nop
with_sysroot=no
fi
@@ -6233,24 +6727,25 @@ case $with_sysroot in #(
no|'')
;; #(
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-$as_echo "$with_sysroot" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+printf "%s\n" "$with_sysroot" >&6; }
as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+printf "%s\n" "${lt_sysroot:-no}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-$as_echo_n "checking for a working dd... " >&6; }
-if ${ac_cv_path_lt_DD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+printf %s "checking for a working dd... " >&6; }
+if test ${ac_cv_path_lt_DD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
: ${lt_DD:=$DD}
@@ -6261,10 +6756,15 @@ if test -z "$lt_DD"; then
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in dd; do
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in dd
+ do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+ ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_lt_DD" || continue
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
@@ -6284,15 +6784,16 @@ fi
rm -f conftest.i conftest2.i conftest.out
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-$as_echo "$ac_cv_path_lt_DD" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-$as_echo_n "checking how to truncate binary pipes... " >&6; }
-if ${lt_cv_truncate_bin+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+printf %s "checking how to truncate binary pipes... " >&6; }
+if test ${lt_cv_truncate_bin+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
lt_cv_truncate_bin=
@@ -6303,8 +6804,8 @@ fi
rm -f conftest.i conftest2.i conftest.out
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-$as_echo "$lt_cv_truncate_bin" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+printf "%s\n" "$lt_cv_truncate_bin" >&6; }
@@ -6327,7 +6828,8 @@ func_cc_basename ()
}
# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
+if test ${enable_libtool_lock+y}
+then :
enableval=$enable_libtool_lock;
fi
@@ -6343,7 +6845,7 @@ ia64-*-hpux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
@@ -6363,7 +6865,7 @@ ia64-*-hpux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in
@@ -6401,7 +6903,7 @@ mips64*-*linux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
emul=elf
case `/usr/bin/file conftest.$ac_objext` in
@@ -6442,7 +6944,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
@@ -6505,11 +7007,12 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+printf %s "checking whether the C compiler needs -belf... " >&6; }
+if test ${lt_cv_cc_needs_belf+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6520,19 +7023,20 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_cc_needs_belf=yes
-else
+else $as_nop
lt_cv_cc_needs_belf=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -6541,8 +7045,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
if test yes != "$lt_cv_cc_needs_belf"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS=$SAVE_CFLAGS
@@ -6555,7 +7059,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*64-bit*)
@@ -6592,11 +7096,12 @@ need_locks=$enable_libtool_lock
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$MANIFEST_TOOL"; then
ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
@@ -6604,11 +7109,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6619,11 +7128,11 @@ fi
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+printf "%s\n" "$MANIFEST_TOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6632,11 +7141,12 @@ if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
# Extract the first word of "mt", so it can be a program name with args.
set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_MANIFEST_TOOL"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
@@ -6644,11 +7154,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6659,11 +7173,11 @@ fi
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_MANIFEST_TOOL" = x; then
@@ -6671,8 +7185,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
@@ -6682,11 +7196,12 @@ else
fi
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if test ${lt_cv_path_mainfest_tool+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
@@ -6696,8 +7211,8 @@ else
fi
rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
@@ -6712,11 +7227,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$DSYMUTIL"; then
ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
@@ -6724,11 +7240,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6739,11 +7259,11 @@ fi
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+printf "%s\n" "$DSYMUTIL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6752,11 +7272,12 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
ac_ct_DSYMUTIL=$DSYMUTIL
# Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_DSYMUTIL"; then
ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
@@ -6764,11 +7285,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6779,11 +7304,11 @@ fi
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DSYMUTIL" = x; then
@@ -6791,8 +7316,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DSYMUTIL=$ac_ct_DSYMUTIL
@@ -6804,11 +7329,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$NMEDIT"; then
ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
@@ -6816,11 +7342,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6831,11 +7361,11 @@ fi
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+printf "%s\n" "$NMEDIT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6844,11 +7374,12 @@ if test -z "$ac_cv_prog_NMEDIT"; then
ac_ct_NMEDIT=$NMEDIT
# Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_NMEDIT"; then
ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
@@ -6856,11 +7387,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6871,11 +7406,11 @@ fi
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+printf "%s\n" "$ac_ct_NMEDIT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_NMEDIT" = x; then
@@ -6883,8 +7418,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NMEDIT=$ac_ct_NMEDIT
@@ -6896,11 +7431,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$LIPO"; then
ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
@@ -6908,11 +7444,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6923,11 +7463,11 @@ fi
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+printf "%s\n" "$LIPO" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -6936,11 +7476,12 @@ if test -z "$ac_cv_prog_LIPO"; then
ac_ct_LIPO=$LIPO
# Extract the first word of "lipo", so it can be a program name with args.
set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_LIPO"; then
ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
@@ -6948,11 +7489,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6963,11 +7508,11 @@ fi
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+printf "%s\n" "$ac_ct_LIPO" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_LIPO" = x; then
@@ -6975,8 +7520,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
LIPO=$ac_ct_LIPO
@@ -6988,11 +7533,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OTOOL"; then
ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
@@ -7000,11 +7546,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7015,11 +7565,11 @@ fi
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+printf "%s\n" "$OTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7028,11 +7578,12 @@ if test -z "$ac_cv_prog_OTOOL"; then
ac_ct_OTOOL=$OTOOL
# Extract the first word of "otool", so it can be a program name with args.
set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OTOOL"; then
ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
@@ -7040,11 +7591,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7055,11 +7610,11 @@ fi
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+printf "%s\n" "$ac_ct_OTOOL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL" = x; then
@@ -7067,8 +7622,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL=$ac_ct_OTOOL
@@ -7080,11 +7635,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$OTOOL64"; then
ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
@@ -7092,11 +7648,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7107,11 +7667,11 @@ fi
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+printf "%s\n" "$OTOOL64" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7120,11 +7680,12 @@ if test -z "$ac_cv_prog_OTOOL64"; then
ac_ct_OTOOL64=$OTOOL64
# Extract the first word of "otool64", so it can be a program name with args.
set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_OTOOL64"; then
ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
@@ -7132,11 +7693,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -7147,11 +7712,11 @@ fi
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+printf "%s\n" "$ac_ct_OTOOL64" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL64" = x; then
@@ -7159,8 +7724,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL64=$ac_ct_OTOOL64
@@ -7195,11 +7760,12 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+printf %s "checking for -single_module linker flag... " >&6; }
+if test ${lt_cv_apple_cc_single_mod+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_apple_cc_single_mod=no
if test -z "$LT_MULTI_MODULE"; then
# By default we will add the -single_module flag. You can override
@@ -7228,14 +7794,15 @@ else
rm -f conftest.*
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+printf %s "checking for -exported_symbols_list linker flag... " >&6; }
+if test ${lt_cv_ld_exported_symbols_list+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_exported_symbols_list=no
save_LDFLAGS=$LDFLAGS
echo "_main" > conftest.sym
@@ -7244,39 +7811,41 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_ld_exported_symbols_list=yes
-else
+else $as_nop
lt_cv_ld_exported_symbols_list=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+printf %s "checking for -force_load linker flag... " >&6; }
+if test ${lt_cv_ld_force_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_ld_force_load=no
cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
+ echo "$AR cr libconftest.a conftest.o" >&5
+ $AR cr libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF
@@ -7296,8 +7865,8 @@ _LT_EOF
rm -rf conftest.dSYM
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+printf "%s\n" "$lt_cv_ld_force_load" >&6; }
case $host_os in
rhapsody* | darwin1.[012])
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
@@ -7308,11 +7877,11 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
# to the OS version, if on x86, and 10.4, the deployment
# target defaults to 10.4. Don't you love it?
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ 10.0,*86*-darwin8*|10.0,*-darwin[912]*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[012][,.]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- 10.*)
+ 10.*|11.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;
@@ -7368,19 +7937,14 @@ func_munge_path_list ()
esac
}
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
+if test "x$ac_cv_header_dlfcn_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
-done
-
@@ -7396,7 +7960,8 @@ done
# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
+if test ${enable_shared+y}
+then :
enableval=$enable_shared; p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
@@ -7414,7 +7979,7 @@ if test "${enable_shared+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_shared=yes
fi
@@ -7427,7 +7992,8 @@ fi
# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
+if test ${enable_static+y}
+then :
enableval=$enable_static; p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
@@ -7445,7 +8011,7 @@ if test "${enable_static+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_static=yes
fi
@@ -7459,7 +8025,8 @@ fi
# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
+if test ${with_pic+y}
+then :
withval=$with_pic; lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
@@ -7476,7 +8043,7 @@ if test "${with_pic+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
pic_mode=default
fi
@@ -7488,7 +8055,8 @@ fi
# Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
+if test ${enable_fast_install+y}
+then :
enableval=$enable_fast_install; p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
@@ -7506,7 +8074,7 @@ if test "${enable_fast_install+set}" = set; then :
IFS=$lt_save_ifs
;;
esac
-else
+else $as_nop
enable_fast_install=yes
fi
@@ -7520,11 +8088,12 @@ fi
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[5-9]*,yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+printf %s "checking which variant of shared library versioning to provide... " >&6; }
# Check whether --with-aix-soname was given.
-if test "${with_aix_soname+set}" = set; then :
+if test ${with_aix_soname+y}
+then :
withval=$with_aix_soname; case $withval in
aix|svr4|both)
;;
@@ -7533,18 +8102,19 @@ if test "${with_aix_soname+set}" = set; then :
;;
esac
lt_cv_with_aix_soname=$with_aix_soname
-else
- if ${lt_cv_with_aix_soname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ if test ${lt_cv_with_aix_soname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_with_aix_soname=aix
fi
with_aix_soname=$lt_cv_with_aix_soname
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-$as_echo "$with_aix_soname" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+printf "%s\n" "$with_aix_soname" >&6; }
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
@@ -7626,11 +8196,12 @@ if test -n "${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+printf %s "checking for objdir... " >&6; }
+if test ${lt_cv_objdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
@@ -7641,17 +8212,15 @@ else
fi
rmdir .libs 2>/dev/null
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+printf "%s\n" "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
+printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
@@ -7697,11 +8266,12 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+printf %s "checking for ${ac_tool_prefix}file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -7750,11 +8320,11 @@ fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7763,11 +8333,12 @@ fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+printf %s "checking for file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -7816,11 +8387,11 @@ fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -7905,11 +8476,12 @@ if test yes = "$GCC"; then
lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test ${lt_cv_prog_compiler_rtti_exceptions+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -7940,8 +8512,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -8138,6 +8710,12 @@ lt_prog_compiler_static=
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-static'
;;
+ # flang / f18. f95 an alias for gfortran or flang on Debian
+ flang* | f18* | f95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
@@ -8298,26 +8876,28 @@ case $host_os in
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+printf %s "checking for $compiler option to produce PIC... " >&6; }
+if test ${lt_cv_prog_compiler_pic+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test ${lt_cv_prog_compiler_pic_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -8348,8 +8928,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
if test yes = "$lt_cv_prog_compiler_pic_works"; then
case $lt_prog_compiler_pic in
@@ -8377,11 +8957,12 @@ fi
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test ${lt_cv_prog_compiler_static_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_static_works=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
@@ -8405,8 +8986,8 @@ else
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
if test yes = "$lt_cv_prog_compiler_static_works"; then
:
@@ -8420,11 +9001,12 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
@@ -8467,19 +9049,20 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
@@ -8522,8 +9105,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
@@ -8531,19 +9114,19 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
hard_links=nottested
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
# do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$RM conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf "%s\n" "$hard_links" >&6; }
if test no = "$hard_links"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
@@ -8555,8 +9138,8 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
runpath_var=
allow_undefined_flag=
@@ -9114,21 +9697,23 @@ _LT_EOF
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
@@ -9143,7 +9728,7 @@ if ac_fn_c_try_link "$LINENO"; then :
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
@@ -9167,21 +9752,23 @@ fi
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
@@ -9196,7 +9783,7 @@ if ac_fn_c_try_link "$LINENO"; then :
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
@@ -9447,11 +10034,12 @@ fi
# Older versions of the 11.00 compiler do not understand -b yet
# (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+printf %s "checking if $CC understands -b... " >&6; }
+if test ${lt_cv_prog_compiler__b+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_prog_compiler__b=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -b"
@@ -9475,8 +10063,8 @@ else
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
if test yes = "$lt_cv_prog_compiler__b"; then
archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -9516,28 +10104,30 @@ fi
# work, assume that -exports_file does not work either and
# implicitly export all symbols.
# This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test ${lt_cv_irix_exported_symbol+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo (void) { return 0; }
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
lt_cv_irix_exported_symbol=yes
-else
+else $as_nop
lt_cv_irix_exported_symbol=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
@@ -9818,8 +10408,8 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+printf "%s\n" "$ld_shlibs" >&6; }
test no = "$ld_shlibs" && can_build_shared=no
with_gnu_ld=$with_gnu_ld
@@ -9855,18 +10445,19 @@ x|xyes)
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+printf %s "checking whether -lc should be explicitly linked in... " >&6; }
+if test ${lt_cv_archive_cmds_need_lc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
$RM conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
@@ -9884,7 +10475,7 @@ else
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
lt_cv_archive_cmds_need_lc=no
@@ -9898,8 +10489,8 @@ else
$RM conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
@@ -10058,8 +10649,8 @@ esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+printf %s "checking dynamic linker characteristics... " >&6; }
if test yes = "$GCC"; then
case $host_os in
@@ -10620,9 +11211,10 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
shlibpath_overrides_runpath=no
# Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ if test ${lt_cv_shlibpath_overrides_runpath+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
lt_cv_shlibpath_overrides_runpath=no
save_LDFLAGS=$LDFLAGS
save_libdir=$libdir
@@ -10632,19 +11224,21 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+if ac_fn_c_try_link "$LINENO"
+then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
+then :
lt_cv_shlibpath_overrides_runpath=yes
fi
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
libdir=$save_libdir
@@ -10888,8 +11482,8 @@ uts4*)
dynamic_linker=no
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf "%s\n" "$dynamic_linker" >&6; }
test no = "$dynamic_linker" && can_build_shared=no
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
@@ -11010,8 +11604,8 @@ configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" ||
test -n "$runpath_var" ||
@@ -11035,8 +11629,8 @@ else
# directories.
hardcode_action=unsupported
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+printf "%s\n" "$hardcode_action" >&6; }
if test relink = "$hardcode_action" ||
test yes = "$inherit_rpath"; then
@@ -11080,11 +11674,12 @@ else
darwin*)
# if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11093,32 +11688,31 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dlopen ();
int
-main ()
+main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
ac_cv_lib_dl_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
+else $as_nop
lt_cv_dlopen=dyld
lt_cv_dlopen_libs=
@@ -11138,14 +11732,16 @@ fi
*)
ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
+if test "x$ac_cv_func_shl_load" = xyes
+then :
lt_cv_dlopen=shl_load
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+printf %s "checking for shl_load in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_shl_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11154,41 +11750,42 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char shl_load ();
int
-main ()
+main (void)
{
return shl_load ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dld_shl_load=yes
-else
+else $as_nop
ac_cv_lib_dld_shl_load=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes
+then :
lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else
+else $as_nop
ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
+if test "x$ac_cv_func_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11197,37 +11794,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dlopen ();
int
-main ()
+main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
ac_cv_lib_dl_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+printf %s "checking for dlopen in -lsvld... " >&6; }
+if test ${ac_cv_lib_svld_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11236,37 +11833,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dlopen ();
int
-main ()
+main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_svld_dlopen=yes
-else
+else $as_nop
ac_cv_lib_svld_dlopen=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes
+then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+printf %s "checking for dld_link in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_dld_link+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11275,30 +11872,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char dld_link ();
int
-main ()
+main (void)
{
return dld_link ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_dld_dld_link=yes
-else
+else $as_nop
ac_cv_lib_dld_dld_link=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes
+then :
lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
fi
@@ -11337,11 +11933,12 @@ fi
save_LIBS=$LIBS
LIBS="$lt_cv_dlopen_libs $LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+printf %s "checking whether a program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self=cross
else
@@ -11420,7 +12017,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -11438,16 +12035,17 @@ rm -fr conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+printf "%s\n" "$lt_cv_dlopen_self" >&6; }
if test yes = "$lt_cv_dlopen_self"; then
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self_static+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self_static=cross
else
@@ -11526,7 +12124,7 @@ _LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -11544,8 +12142,8 @@ rm -fr conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
fi
CPPFLAGS=$save_CPPFLAGS
@@ -11583,13 +12181,13 @@ fi
striplib=
old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in
@@ -11597,16 +12195,16 @@ else
if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
;;
*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
;;
esac
fi
@@ -11623,13 +12221,13 @@ fi
# Report what library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+printf %s "checking if libtool supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+printf "%s\n" "$can_build_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+printf %s "checking whether to build shared libraries... " >&6; }
test no = "$can_build_shared" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
@@ -11653,15 +12251,15 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
fi
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+printf "%s\n" "$enable_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+printf %s "checking whether to build static libraries... " >&6; }
# Make sure either enable_shared or enable_static is yes.
test yes = "$enable_shared" || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+printf "%s\n" "$enable_static" >&6; }
@@ -11712,11 +12310,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -11724,11 +12323,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11739,11 +12342,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11752,11 +12355,12 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -11764,11 +12368,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11779,11 +12387,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
@@ -11791,8 +12399,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -11805,11 +12413,12 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -11817,11 +12426,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11832,11 +12445,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11845,11 +12458,12 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -11858,15 +12472,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11882,18 +12500,18 @@ if test $ac_prog_rejected = yes; then
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11904,11 +12522,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
@@ -11916,11 +12535,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11931,11 +12554,11 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11948,11 +12571,12 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
@@ -11960,11 +12584,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -11975,11 +12603,11 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -11991,34 +12619,138 @@ done
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
+else
+ CC="$ac_cv_prog_CC"
fi
fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -12028,20 +12760,21 @@ $as_echo "$ac_try_echo"; } >&5
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __GNUC__
choke me
@@ -12051,29 +12784,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_compiler_gnu=yes
-else
+else $as_nop
ac_compiler_gnu=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
@@ -12082,57 +12819,60 @@ else
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
-else
+else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
-else
+else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
@@ -12147,94 +12887,144 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c89_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
+ if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_prog_cc_c89=$ac_arg
fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
+fi
fi
ac_ext=c
@@ -12244,8 +13034,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $CC dependency flag" >&5
-$as_echo_n "checking $CC dependency flag... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $CC dependency flag" >&5
+printf %s "checking $CC dependency flag... " >&6; }
echo 'void f(){}' >conftest.c
if test "`$CC -MM conftest.c 2>&1`" = "conftest.o: conftest.c"; then
DEPFLAG="-MM"
@@ -12256,18 +13046,19 @@ else
DEPFLAG="-MM" # dunno do something
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEPFLAG" >&5
-$as_echo "$DEPFLAG" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DEPFLAG" >&5
+printf "%s\n" "$DEPFLAG" >&6; }
rm -f conftest.c
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@@ -12283,12 +13074,12 @@ esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
SET_MAKE=
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
@@ -12304,17 +13095,18 @@ esac
-$as_echo "#define WINVER 0x0502" >>confdefs.h
+printf "%s\n" "#define WINVER 0x0502" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
+printf %s "checking whether $CC supports -std=c99... " >&6; }
cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
@@ -12327,25 +13119,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
C99FLAG="-std=c99"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
-$as_echo_n "checking whether $CC supports -xc99... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
+printf %s "checking whether $CC supports -xc99... " >&6; }
cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
@@ -12358,13 +13151,13 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
C99FLAG="-xc99"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
@@ -12382,16 +13175,17 @@ fi
# Checks for typedefs, structures, and compiler characteristics.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+printf %s "checking for an ANSI C-conforming const... " >&6; }
+if test ${ac_cv_c_const+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
#ifndef __cplusplus
@@ -12404,7 +13198,7 @@ main ()
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
+ /* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
@@ -12432,7 +13226,7 @@ main ()
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+ { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
@@ -12448,18 +13242,19 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_const=yes
-else
+else $as_nop
ac_cv_c_const=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
-$as_echo "#define const /**/" >>confdefs.h
+printf "%s\n" "#define const /**/" >>confdefs.h
fi
@@ -12472,12 +13267,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test "x$CFLAGS" = "x" ; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
-$as_echo_n "checking whether $CC supports -g... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
+printf %s "checking whether $CC supports -g... " >&6; }
cache=`echo g | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -g -c conftest.c 2>&1`"; then
@@ -12490,25 +13286,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-g"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
-$as_echo_n "checking whether $CC supports -O2... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
+printf %s "checking whether $CC supports -O2... " >&6; }
cache=`echo O2 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
@@ -12521,13 +13318,13 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-O2 $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
@@ -12535,12 +13332,13 @@ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-$as_echo_n "checking whether $CC supports -Wall... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
+printf %s "checking whether $CC supports -Wall... " >&6; }
cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
@@ -12553,25 +13351,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-Wall $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
-$as_echo_n "checking whether $CC supports -W... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
+printf %s "checking whether $CC supports -W... " >&6; }
cache=`echo W | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -W -c conftest.c 2>&1`"; then
@@ -12584,25 +13383,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-W $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wwrite-strings" >&5
-$as_echo_n "checking whether $CC supports -Wwrite-strings... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wwrite-strings" >&5
+printf %s "checking whether $CC supports -Wwrite-strings... " >&6; }
cache=`echo Wwrite-strings | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wwrite-strings -c conftest.c 2>&1`"; then
@@ -12615,25 +13415,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-Wwrite-strings $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wstrict-prototypes" >&5
-$as_echo_n "checking whether $CC supports -Wstrict-prototypes... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wstrict-prototypes" >&5
+printf %s "checking whether $CC supports -Wstrict-prototypes... " >&6; }
cache=`echo Wstrict-prototypes | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wstrict-prototypes -c conftest.c 2>&1`"; then
@@ -12646,13 +13447,13 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-Wstrict-prototypes $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
@@ -12660,12 +13461,13 @@ fi
#ACX_CHECK_COMPILER_FLAG(Wshadow, [CFLAGS="-Wshadow $CFLAGS"])
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wunused-function" >&5
-$as_echo_n "checking whether $CC supports -Wunused-function... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wunused-function" >&5
+printf %s "checking whether $CC supports -Wunused-function... " >&6; }
cache=`echo Wunused-function | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wunused-function -c conftest.c 2>&1`"; then
@@ -12678,25 +13480,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-Wunused-function $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wmissing-prototypes" >&5
-$as_echo_n "checking whether $CC supports -Wmissing-prototypes... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wmissing-prototypes" >&5
+printf %s "checking whether $CC supports -Wmissing-prototypes... " >&6; }
cache=`echo Wmissing-prototypes | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wmissing-prototypes -c conftest.c 2>&1`"; then
@@ -12709,59 +13512,103 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="-Wmissing-prototypes $CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+:
+
+fi
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fno-strict-aliasing" >&5
+printf %s "checking whether $CC supports -fno-strict-aliasing... " >&6; }
+cache=`echo fno-strict-aliasing | sed 'y%.=/+-%___p_%'`
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+echo 'void f(void){}' >conftest.c
+if test -z "`$CC $CPPFLAGS $CFLAGS -fno-strict-aliasing -c conftest.c 2>&1`"; then
+eval "cv_prog_cc_flag_$cache=yes"
+else
+eval "cv_prog_cc_flag_$cache=no"
+fi
+rm -f conftest conftest.o conftest.c
+
+fi
+
+if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+:
+CFLAGS="-fno-strict-aliasing $CFLAGS"
+else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-for ac_header in getopt.h time.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_getopt_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
-done
+fi
# MinGW32 tests
-for ac_header in winsock2.h ws2tcpip.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_winsock2_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_ws2tcpip_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
-done
+fi
# end mingw32 tests
+# Check for Apple header. This uncovers TARGET_OS_IPHONE, TARGET_OS_TV or TARGET_OS_WATCH
+ac_fn_c_check_header_compile "$LINENO" "TargetConditionals.h" "ac_cv_header_TargetConditionals_h" "$ac_includes_default"
+if test "x$ac_cv_header_TargetConditionals_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TARGETCONDITIONALS_H 1" >>confdefs.h
+
+fi
+
+
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
-$as_echo_n "checking whether $CC supports -Werror... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
+printf %s "checking whether $CC supports -Werror... " >&6; }
cache=`echo Werror | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Werror -c conftest.c 2>&1`"; then
@@ -12774,25 +13621,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
ERRFLAG="-Werror"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
ERRFLAG="-errwarn"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-$as_echo_n "checking whether $CC supports -Wall... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
+printf %s "checking whether $CC supports -Wall... " >&6; }
cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
@@ -12805,13 +13653,13 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
ERRFLAG="$ERRFLAG -Wall"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
ERRFLAG="$ERRFLAG -errfmt"
fi
@@ -12820,12 +13668,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
+printf %s "checking whether $CC supports -std=c99... " >&6; }
cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
@@ -12838,25 +13687,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
C99FLAG="-std=c99"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
-$as_echo_n "checking whether $CC supports -xc99... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
+printf %s "checking whether $CC supports -xc99... " >&6; }
cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
@@ -12869,42 +13719,44 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
C99FLAG="-xc99"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-for ac_header in getopt.h time.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_getopt_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
-done
+fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
+printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
+cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include "confdefs.h"
@@ -12963,14 +13815,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -12979,8 +13831,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -12990,12 +13842,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
+printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
+cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include "confdefs.h"
@@ -13054,14 +13907,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -13070,8 +13923,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13081,12 +13934,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
+printf %s "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
+cache=`printf "%s\n" "$C99FLAG" | $as_tr_sh`
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include <stdbool.h>
@@ -13118,14 +13972,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS $C99FLAG"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
@@ -13134,8 +13988,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13145,12 +13999,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC" >&5
-$as_echo_n "checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC" >&5
+printf %s "checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC... " >&6; }
cache=_D_BSD_SOURCE__D_DEFAULT_SOURCE
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include <ctype.h>
@@ -13183,14 +14038,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -13199,8 +14054,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13210,12 +14065,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE as a flag for $CC" >&5
-$as_echo_n "checking whether we need -D_GNU_SOURCE as a flag for $CC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE as a flag for $CC" >&5
+printf %s "checking whether we need -D_GNU_SOURCE as a flag for $CC... " >&6; }
cache=_D_GNU_SOURCE
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include <netinet/in.h>
@@ -13248,14 +14104,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -D_GNU_SOURCE"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1"
@@ -13264,8 +14120,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13278,12 +14134,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC" >&5
-$as_echo_n "checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC" >&5
+printf %s "checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC... " >&6; }
cache=_D_GNU_SOURCE__D_FRSRESGID
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include <unistd.h>
@@ -13316,14 +14173,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -D_GNU_SOURCE"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1"
@@ -13332,8 +14189,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13343,12 +14200,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC" >&5
-$as_echo_n "checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC" >&5
+printf %s "checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC... " >&6; }
cache=_D_POSIX_C_SOURCE_200112
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include "confdefs.h"
@@ -13392,14 +14250,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1"
@@ -13408,8 +14266,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13419,12 +14277,13 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D__EXTENSIONS__ as a flag for $CC" >&5
-$as_echo_n "checking whether we need -D__EXTENSIONS__ as a flag for $CC... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D__EXTENSIONS__ as a flag for $CC" >&5
+printf %s "checking whether we need -D__EXTENSIONS__ as a flag for $CC... " >&6; }
cache=_D__EXTENSIONS__
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_needed_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo '
#include "confdefs.h"
@@ -13474,14 +14333,14 @@ rm -f conftest conftest.c conftest.o
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -D__EXTENSIONS__"
else
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
#echo 'Test with flag is no!'
#cat conftest.c
#echo "$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1"
@@ -13490,8 +14349,8 @@ $as_echo "no" >&6; }
:
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
:
fi
@@ -13500,32 +14359,34 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+printf %s "checking for inline... " >&6; }
+if test ${ac_cv_c_inline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
+static $ac_kw foo_t static_foo (void) {return 0; }
+$ac_kw foo_t foo (void) {return 0; }
#endif
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_inline=$ac_kw
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+printf "%s\n" "$ac_cv_c_inline" >&6; }
case $ac_cv_c_inline in
inline | yes) ;;
@@ -13543,90 +14404,82 @@ _ACEOF
esac
ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
-if test "x$ac_cv_type_int8_t" = xyes; then :
+if test "x$ac_cv_type_int8_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define int8_t char
-_ACEOF
+printf "%s\n" "#define int8_t char" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
-if test "x$ac_cv_type_int16_t" = xyes; then :
+if test "x$ac_cv_type_int16_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define int16_t short
-_ACEOF
+printf "%s\n" "#define int16_t short" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
-if test "x$ac_cv_type_int32_t" = xyes; then :
+if test "x$ac_cv_type_int32_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define int32_t int
-_ACEOF
+printf "%s\n" "#define int32_t int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
-if test "x$ac_cv_type_int64_t" = xyes; then :
+if test "x$ac_cv_type_int64_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define int64_t long long
-_ACEOF
+printf "%s\n" "#define int64_t long long" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint8_t" = xyes; then :
+if test "x$ac_cv_type_uint8_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define uint8_t unsigned char
-_ACEOF
+printf "%s\n" "#define uint8_t unsigned char" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint16_t" = xyes; then :
+if test "x$ac_cv_type_uint16_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define uint16_t unsigned short
-_ACEOF
+printf "%s\n" "#define uint16_t unsigned short" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint32_t" = xyes; then :
+if test "x$ac_cv_type_uint32_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define uint32_t unsigned int
-_ACEOF
+printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint64_t" = xyes; then :
+if test "x$ac_cv_type_uint64_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define uint64_t unsigned long long
-_ACEOF
+printf "%s\n" "#define uint64_t unsigned long long" >>confdefs.h
fi
@@ -13634,11 +14487,12 @@ fi
# my own checks
# Extract the first word of "doxygen", so it can be a program name with args.
set dummy doxygen; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_doxygen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_doxygen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$doxygen"; then
ac_cv_prog_doxygen="$doxygen" # Let the user override the test.
else
@@ -13646,11 +14500,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_doxygen="doxygen"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -13661,21 +14519,27 @@ fi
fi
doxygen=$ac_cv_prog_doxygen
if test -n "$doxygen"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $doxygen" >&5
-$as_echo "$doxygen" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doxygen" >&5
+printf "%s\n" "$doxygen" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
# check to see if libraries are needed for these functions.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
-$as_echo_n "checking for library containing socket... " >&6; }
-if ${ac_cv_search_socket+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
+if test "x$ac_cv_func_socket" = xyes
+then :
+
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
+printf %s "checking for library containing socket... " >&6; }
+if test ${ac_cv_search_socket+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -13683,55 +14547,143 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char socket ();
int
-main ()
+main (void)
{
return socket ();
;
return 0;
}
_ACEOF
-for ac_lib in '' socket; do
+for ac_lib in '' socket
+do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
- if ac_fn_c_try_link "$LINENO"; then :
+ if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_search_socket=$ac_res
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
- if ${ac_cv_search_socket+:} false; then :
+ if test ${ac_cv_search_socket+y}
+then :
break
fi
done
-if ${ac_cv_search_socket+:} false; then :
+if test ${ac_cv_search_socket+y}
+then :
-else
+else $as_nop
ac_cv_search_socket=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-$as_echo "$ac_cv_search_socket" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
+printf "%s\n" "$ac_cv_search_socket" >&6; }
ac_res=$ac_cv_search_socket
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
-$as_echo_n "checking for library containing inet_pton... " >&6; }
-if ${ac_cv_search_inet_pton+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+
+fi
+
+
+# modern Linux provides inet_ntop in -lsocket.
+# modern OS X provides inet_ntop in -lc.
+# modern Solaris provides inet_ntop in -lsocket -lnsl.
+# older Solaris provides inet_ntop in -lresolv.
+ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
+if test "x$ac_cv_func_inet_ntop" = xyes
+then :
+
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5
+printf %s "checking for library containing inet_ntop... " >&6; }
+if test ${ac_cv_search_inet_ntop+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char inet_ntop ();
+int
+main (void)
+{
+return inet_ntop ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket c nsl resolv
+do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_search_inet_ntop=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext
+ if test ${ac_cv_search_inet_ntop+y}
+then :
+ break
+fi
+done
+if test ${ac_cv_search_inet_ntop+y}
+then :
+
+else $as_nop
+ ac_cv_search_inet_ntop=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5
+printf "%s\n" "$ac_cv_search_inet_ntop" >&6; }
+ac_res=$ac_cv_search_inet_ntop
+if test "$ac_res" != no
+then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ ac_cv_func_inet_ntop=yes
+fi
+
+
+fi
+
+
+# modern Linux provides inet_pton in -lsocket.
+# modern OS X provides inet_pton in -lc.
+# modern Solaris provides inet_pton in -lsocket -lnsl.
+# older Solaris provides inet_pton in -lresolv.
+ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
+if test "x$ac_cv_func_inet_pton" = xyes
+then :
+
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
+printf %s "checking for library containing inet_pton... " >&6; }
+if test ${ac_cv_search_inet_pton+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -13739,47 +14691,52 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char inet_pton ();
int
-main ()
+main (void)
{
return inet_pton ();
;
return 0;
}
_ACEOF
-for ac_lib in '' nsl; do
+for ac_lib in '' socket c nsl resolv
+do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
- if ac_fn_c_try_link "$LINENO"; then :
+ if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_search_inet_pton=$ac_res
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
- if ${ac_cv_search_inet_pton+:} false; then :
+ if test ${ac_cv_search_inet_pton+y}
+then :
break
fi
done
-if ${ac_cv_search_inet_pton+:} false; then :
+if test ${ac_cv_search_inet_pton+y}
+then :
-else
+else $as_nop
ac_cv_search_inet_pton=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
-$as_echo "$ac_cv_search_inet_pton" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
+printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
ac_res=$ac_cv_search_inet_pton
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ ac_cv_func_inet_pton=yes
+fi
+
fi
@@ -13787,9 +14744,10 @@ fi
# Check whether --with-drill was given.
-if test "${with_drill+set}" = set; then :
+if test ${with_drill+y}
+then :
withval=$with_drill;
-else
+else $as_nop
with_drill="no"
fi
@@ -13827,9 +14785,10 @@ fi
# Check whether --with-examples was given.
-if test "${with_examples+set}" = set; then :
+if test ${with_examples+y}
+then :
withval=$with_examples;
-else
+else $as_nop
with_examples="no"
fi
@@ -13866,9 +14825,10 @@ fi
# add option to disable installation of ldns-config script
# Check whether --enable-ldns-config was given.
-if test "${enable_ldns_config+set}" = set; then :
+if test ${enable_ldns_config+y}
+then :
enableval=$enable_ldns_config; enable_ldns_config=$enableval
-else
+else $as_nop
enable_ldns_config=yes
fi
@@ -13894,9 +14854,10 @@ fi
# add option to disable library printing to stderr
# Check whether --enable-stderr-msgs was given.
-if test "${enable_stderr_msgs+set}" = set; then :
+if test ${enable_stderr_msgs+y}
+then :
enableval=$enable_stderr_msgs; enable_stderr_msgs=$enableval
-else
+else $as_nop
enable_stderr_msgs=no
fi
@@ -13904,53 +14865,55 @@ case "$enable_stderr_msgs" in
no) ;;
*)
-cat >>confdefs.h <<_ACEOF
-#define STDERR_MSGS 1
-_ACEOF
+printf "%s\n" "#define STDERR_MSGS 1" >>confdefs.h
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for poll(2)" >&5
-$as_echo_n "checking for poll(2)... " >&6; }
- if ${ax_cv_have_poll+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for poll(2)" >&5
+printf %s "checking for poll(2)... " >&6; }
+ if test ${ax_cv_have_poll+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <poll.h>
int
-main ()
+main (void)
{
int rc; rc = poll((struct pollfd *)(0), 0, 0);
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ax_cv_have_poll=yes
-else
+else $as_nop
ax_cv_have_poll=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
- if test "${ax_cv_have_poll}" = "yes"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ if test "${ax_cv_have_poll}" = "yes"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
ax_config_feature_poll=yes
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
ax_config_feature_poll=no
fi
# Check whether --enable-poll was given.
-if test "${enable_poll+set}" = set; then :
+if test ${enable_poll+y}
+then :
enableval=$enable_poll;
case "${enableval}" in
yes)
@@ -13967,21 +14930,24 @@ esac
fi
-if test "$ax_config_feature_poll" = yes; then :
- $as_echo "#define HAVE_POLL 1" >>confdefs.h
+if test "$ax_config_feature_poll" = yes
+then :
+ printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
- if test "$ax_config_feature_verbose" = yes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: Feature poll is enabled" >&5
-$as_echo "$as_me: Feature poll is enabled" >&6;}
+ if test "$ax_config_feature_verbose" = yes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Feature poll is enabled" >&5
+printf "%s\n" "$as_me: Feature poll is enabled" >&6;}
fi
-else
+else $as_nop
- if test "$ax_config_feature_verbose" = yes; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: Feature poll is disabled" >&5
-$as_echo "$as_me: Feature poll is disabled" >&6;}
+ if test "$ax_config_feature_verbose" = yes
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Feature poll is disabled" >&5
+printf "%s\n" "$as_me: Feature poll is disabled" >&6;}
fi
@@ -13997,16 +14963,17 @@ ldns_with_pyldns=no
ldns_with_pyldnsx=no
# Check whether --with-pyldns was given.
-if test "${with_pyldns+set}" = set; then :
+if test ${with_pyldns+y}
+then :
withval=$with_pyldns;
-else
+else $as_nop
withval="no"
fi
ldns_have_python=no
if test x_$withval != x_no; then
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_python_devel.html
+# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
# ===========================================================================
#
# SYNOPSIS
@@ -14019,8 +14986,8 @@ if test x_$withval != x_no; then
# in your configure.ac.
#
# This macro checks for Python and tries to get the include path to
-# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
-# output variables. It also exports $(PYTHON_EXTRA_LIBS) and
+# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
+# variables. It also exports $(PYTHON_EXTRA_LIBS) and
# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
#
# You can search for some particular version of Python by passing a
@@ -14059,7 +15026,7 @@ if test x_$withval != x_no; then
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
+# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
@@ -14074,12 +15041,13 @@ if test x_$withval != x_no; then
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 16
+#serial 21
-# This is what autoupdate's m4 run will expand. It fires
-# the warning (with _au_warn_XXX), outputs it into the
-# updated configure.ac (with AC_DIAGNOSE), and then outputs
-# the replacement expansion.
+# This is what autoupdate's m4 run will expand. It fires the warning
+# (with _au_warn_XXX), outputs it into the updated configure.ac (with
+# m4_warn), and then outputs the replacement expansion. We need extra
+# quotation around the m4_warn and dnl so they will be written
+# unexpanded into the updated configure.ac.
# This is an auxiliary macro that is also run when
@@ -14090,10 +15058,11 @@ if test x_$withval != x_no; then
# Finally, this is the expansion that is picked up by
-# autoconf. It tells the user to run autoupdate, and
-# then outputs the replacement expansion. We do not care
-# about autoupdate's warning because that contains
-# information on what to do *after* running autoupdate.
+# autoconf, causing NAME to expand to NEW-CODE, plus
+# (if SILENT is not "silent") a m4_warning telling the
+# maintainer to run autoupdate. We don't issue MESSAGE
+# from autoconf, because that's instructions for what
+# to do *after* running autoupdate.
@@ -14106,11 +15075,12 @@ if test x_$withval != x_no; then
# Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args.
set dummy python$PYTHON_VERSION; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHON+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PYTHON+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PYTHON in
[\\/]* | ?:[\\/]*)
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
@@ -14120,11 +15090,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PYTHON="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -14136,11 +15110,11 @@ esac
fi
PYTHON=$ac_cv_path_PYTHON
if test -n "$PYTHON"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+printf "%s\n" "$PYTHON" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -14152,51 +15126,51 @@ fi
#
# Check for a version of Python >= 2.1.0
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.1.0'" >&5
-$as_echo_n "checking for a version of Python >= '2.1.0'... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.1.0'" >&5
+printf %s "checking for a version of Python >= '2.1.0'... " >&6; }
ac_supports_python_ver=`$PYTHON -c "import sys; \
ver = sys.version.split ()[0]; \
print (ver >= '2.1.0')"`
if test "$ac_supports_python_ver" != "True"; then
if test -z "$PYTHON_NOVERSIONCHECK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "
This version of the AC_PYTHON_DEVEL macro
doesn't work properly with versions of Python before
2.1.0. You may need to re-run configure, setting the
-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
+variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
to something else than an empty string.
See \`config.log' for more details" "$LINENO" 5; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: skip at user request" >&5
-$as_echo "skip at user request" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: skip at user request" >&5
+printf "%s\n" "skip at user request" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
#
# if the macro parameter ``version'' is set, honour it
#
if test -n ">= '2.4.0'"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.4.0'" >&5
-$as_echo_n "checking for a version of Python >= '2.4.0'... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.4.0'" >&5
+printf %s "checking for a version of Python >= '2.4.0'... " >&6; }
ac_supports_python_ver=`$PYTHON -c "import sys; \
ver = sys.version.split ()[0]; \
print (ver >= '2.4.0')"`
if test "$ac_supports_python_ver" = "True"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "this package requires Python >= '2.4.0'.
If you have it installed, but it isn't the default Python
interpreter in your system path, please pass the PYTHON_VERSION
@@ -14209,15 +15183,15 @@ variable to configure. See \`\`configure --help'' for reference.
#
# Check if you have distutils, else fail
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
-$as_echo_n "checking for the distutils Python package... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
+printf %s "checking for the distutils Python package... " >&6; }
ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
- if test -z "$ac_distutils_result"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ if test $? -eq 0; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "cannot import Python module \"distutils\".
Please check your Python installation. The error was:
$ac_distutils_result" "$LINENO" 5
@@ -14227,8 +15201,8 @@ $ac_distutils_result" "$LINENO" 5
#
# Check for Python include path
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
-$as_echo_n "checking for Python include path... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+printf %s "checking for Python include path... " >&6; }
if test -z "$PYTHON_CPPFLAGS"; then
python_path=`$PYTHON -c "import distutils.sysconfig; \
print (distutils.sysconfig.get_python_inc ());"`
@@ -14243,16 +15217,16 @@ $as_echo_n "checking for Python include path... " >&6; }
fi
PYTHON_CPPFLAGS=$python_path
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5
-$as_echo "$PYTHON_CPPFLAGS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5
+printf "%s\n" "$PYTHON_CPPFLAGS" >&6; }
#
# Check for Python library path
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
-$as_echo_n "checking for Python library path... " >&6; }
- if test -z "$PYTHON_LDFLAGS"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
+printf %s "checking for Python library path... " >&6; }
+ if test -z "$PYTHON_LIBS"; then
# (makes two attempts to ensure we've got a version number
# from the interpreter)
ac_python_version=`cat<<EOD | $PYTHON -
@@ -14276,9 +15250,7 @@ EOD`
# Make the versioning information available to the compiler
-cat >>confdefs.h <<_ACEOF
-#define HAVE_PYTHON "$ac_python_version"
-_ACEOF
+printf "%s\n" "#define HAVE_PYTHON \"$ac_python_version\"" >>confdefs.h
# First, the library directory:
@@ -14310,77 +15282,79 @@ EOD`
then
# use the official shared library
ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
- PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
+ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
else
# old way: use libpython from python_configdir
ac_python_libdir=`$PYTHON -c \
"from distutils.sysconfig import get_python_lib as f; \
import os; \
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
- PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
+ PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
fi
- if test -z "PYTHON_LDFLAGS"; then
+ if test -z "PYTHON_LIBS"; then
as_fn_error $? "
Cannot determine location of your Python DSO. Please check it was installed with
- dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
+ dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
" "$LINENO" 5
fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LDFLAGS" >&5
-$as_echo "$PYTHON_LDFLAGS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LIBS" >&5
+printf "%s\n" "$PYTHON_LIBS" >&6; }
#
# Check for site packages
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
-$as_echo_n "checking for Python site-packages path... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
+printf %s "checking for Python site-packages path... " >&6; }
if test -z "$PYTHON_SITE_PKG"; then
PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
print (distutils.sysconfig.get_python_lib(1,0));"`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
-$as_echo "$PYTHON_SITE_PKG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
+printf "%s\n" "$PYTHON_SITE_PKG" >&6; }
#
# libraries which must be linked in when embedding
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5
-$as_echo_n "checking python extra libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5
+printf %s "checking python extra libraries... " >&6; }
if test -z "$PYTHON_EXTRA_LIBS"; then
PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
conf = distutils.sysconfig.get_config_var; \
- print (conf('LIBS'))"`
+ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5
-$as_echo "$PYTHON_EXTRA_LIBS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5
+printf "%s\n" "$PYTHON_EXTRA_LIBS" >&6; }
#
# linking flags needed when embedding
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5
-$as_echo_n "checking python extra linking flags... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5
+printf %s "checking python extra linking flags... " >&6; }
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
conf = distutils.sysconfig.get_config_var; \
print (conf('LINKFORSHARED'))"`
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5
-$as_echo "$PYTHON_EXTRA_LDFLAGS" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5
+printf "%s\n" "$PYTHON_EXTRA_LDFLAGS" >&6; }
#
# final check to see if everything compiles alright
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5
-$as_echo_n "checking consistency of all components of python development environment... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5
+printf %s "checking consistency of all components of python development environment... " >&6; }
# save current global flags
ac_save_LIBS="$LIBS"
+ ac_save_LDFLAGS="$LDFLAGS"
ac_save_CPPFLAGS="$CPPFLAGS"
- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
+ LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
+ LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -14393,7 +15367,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
#include <Python.h>
int
-main ()
+main (void)
{
Py_Initialize();
;
@@ -14401,12 +15375,13 @@ Py_Initialize();
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
pythonexists=yes
-else
+else $as_nop
pythonexists=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -14417,18 +15392,19 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# turn back to default flags
CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
+ LDFLAGS="$ac_save_LDFLAGS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5
-$as_echo "$pythonexists" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5
+printf "%s\n" "$pythonexists" >&6; }
if test ! "x$pythonexists" = "xyes"; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "
Could not link test program to Python. Maybe the main Python library has been
installed in some non-standard library path. If so, pass it to configure,
- via the LDFLAGS environment variable.
- Example: ./configure LDFLAGS=\"-L/usr/non-standard-path/python/lib\"
+ via the LIBS environment variable.
+ Example: ./configure LIBS=\"-L/usr/non-standard-path/python/lib\"
============================================================================
ERROR!
You probably have to install the development version of the Python package
@@ -14458,7 +15434,7 @@ See \`config.log' for more details" "$LINENO" 5; }
# check for SWIG
if test x_$ldns_have_python != x_no; then
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
+# https://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
# ===========================================================================
#
# SYNOPSIS
@@ -14491,9 +15467,9 @@ See \`config.log' for more details" "$LINENO" 5; }
# LICENSE
#
# Copyright (c) 2008 Sebastian Huber <sebastian-huber@web.de>
-# Copyright (c) 2008 Alan W. Irwin <irwin@beluga.phys.uvic.ca>
+# Copyright (c) 2008 Alan W. Irwin
# Copyright (c) 2008 Rafael Laboissiere <rafael@laboissiere.net>
-# Copyright (c) 2008 Andrew Collier <colliera@ukzn.ac.za>
+# Copyright (c) 2008 Andrew Collier
# Copyright (c) 2011 Murray Cumming <murrayc@openismus.com>
#
# This program is free software; you can redistribute it and/or modify it
@@ -14507,7 +15483,7 @@ See \`config.log' for more details" "$LINENO" 5; }
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
+# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
@@ -14522,7 +15498,7 @@ See \`config.log' for more details" "$LINENO" 5; }
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 8
+#serial 13
@@ -14532,16 +15508,17 @@ See \`config.log' for more details" "$LINENO" 5; }
ver = sys.version.split()[0]; \
print(ver >= '3.2')"` = "True"; then
- # Ubuntu has swig 2.0 as /usr/bin/swig2.0
- for ac_prog in swig2.0 swig
+ # Find path to the "swig" executable.
+ for ac_prog in swig swig3.0 swig2.0
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SWIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_SWIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $SWIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
@@ -14551,11 +15528,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_SWIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -14567,11 +15548,11 @@ esac
fi
SWIG=$ac_cv_path_SWIG
if test -n "$SWIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-$as_echo "$SWIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
+printf "%s\n" "$SWIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -14581,11 +15562,11 @@ done
if test -z "$SWIG" ; then
as_fn_error $? "SWIG-2.0.4 is required to build pyldns for Python 3.2 and greater." "$LINENO" 5
elif test -n "2.0.4" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
-$as_echo_n "checking SWIG version... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
+printf %s "checking SWIG version... " >&6; }
swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-$as_echo "$swig_version" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
+printf "%s\n" "$swig_version" >&6; }
if test -n "$swig_version" ; then
# Calculate the required version number components
required=2.0.4
@@ -14628,21 +15609,21 @@ $as_echo "$swig_version" >&6; }
\+ $available_minor \* 100 \+ $available_patch`
if test $available_swig_vernum -lt $required_swig_vernum; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0.4 is required. You have $swig_version." >&5
-$as_echo "$as_me: WARNING: SWIG version >= 2.0.4 is required. You have $swig_version." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0.4 is required. You have $swig_version." >&5
+printf "%s\n" "$as_me: WARNING: SWIG version >= 2.0.4 is required. You have $swig_version." >&2;}
SWIG=''
as_fn_error $? "SWIG-2.0.4 is required to build pyldns for Python 3.2 and greater." "$LINENO" 5
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
-$as_echo_n "checking for SWIG library... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
+printf %s "checking for SWIG library... " >&6; }
SWIG_LIB=`$SWIG -swiglib`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
-$as_echo "$SWIG_LIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
+printf "%s\n" "$SWIG_LIB" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-$as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
+printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
SWIG=''
as_fn_error $? "SWIG-2.0.4 is required to build pyldns for Python 3.2 and greater." "$LINENO" 5
fi
@@ -14651,16 +15632,17 @@ $as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
else
- # Ubuntu has swig 2.0 as /usr/bin/swig2.0
- for ac_prog in swig2.0 swig
+ # Find path to the "swig" executable.
+ for ac_prog in swig swig3.0 swig2.0
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SWIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_SWIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $SWIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
@@ -14670,11 +15652,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_SWIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -14686,11 +15672,11 @@ esac
fi
SWIG=$ac_cv_path_SWIG
if test -n "$SWIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-$as_echo "$SWIG" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
+printf "%s\n" "$SWIG" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -14700,11 +15686,11 @@ done
if test -z "$SWIG" ; then
:
elif test -n "" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
-$as_echo_n "checking SWIG version... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
+printf %s "checking SWIG version... " >&6; }
swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-$as_echo "$swig_version" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
+printf "%s\n" "$swig_version" >&6; }
if test -n "$swig_version" ; then
# Calculate the required version number components
required=
@@ -14747,21 +15733,21 @@ $as_echo "$swig_version" >&6; }
\+ $available_minor \* 100 \+ $available_patch`
if test $available_swig_vernum -lt $required_swig_vernum; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= is required. You have $swig_version." >&5
-$as_echo "$as_me: WARNING: SWIG version >= is required. You have $swig_version." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= is required. You have $swig_version." >&5
+printf "%s\n" "$as_me: WARNING: SWIG version >= is required. You have $swig_version." >&2;}
SWIG=''
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
-$as_echo_n "checking for SWIG library... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
+printf %s "checking for SWIG library... " >&6; }
SWIG_LIB=`$SWIG -swiglib`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
-$as_echo "$SWIG_LIB" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
+printf "%s\n" "$SWIG_LIB" >&6; }
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-$as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
+printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
SWIG=''
fi
@@ -14774,7 +15760,7 @@ $as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
as_fn_error $? "failed to find SWIG tool, install it, or do not build pyldns" "$LINENO" 5
else
-$as_echo "#define HAVE_SWIG 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SWIG 1" >>confdefs.h
PYLDNS="pyldns"
@@ -14783,20 +15769,21 @@ $as_echo "#define HAVE_SWIG 1" >>confdefs.h
ldns_with_pyldns=yes
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: *** don't have Python, skipping SWIG, no pyldns ***" >&5
-$as_echo "*** don't have Python, skipping SWIG, no pyldns ***" >&6; } # '
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** don't have Python, skipping SWIG, no pyldns ***" >&5
+printf "%s\n" "*** don't have Python, skipping SWIG, no pyldns ***" >&6; } # '
fi
# xtra cflags for pyldns
if test x_$ldns_have_python != x_no; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fno-strict-aliasing" >&5
-$as_echo_n "checking whether $CC supports -fno-strict-aliasing... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fno-strict-aliasing" >&5
+printf %s "checking whether $CC supports -fno-strict-aliasing... " >&6; }
cache=`echo fno-strict-aliasing | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -fno-strict-aliasing -c conftest.c 2>&1`"; then
@@ -14809,25 +15796,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
PYTHON_X_CFLAGS="-fno-strict-aliasing"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-missing-field-initializers" >&5
-$as_echo_n "checking whether $CC supports -Wno-missing-field-initializers... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-missing-field-initializers" >&5
+printf %s "checking whether $CC supports -Wno-missing-field-initializers... " >&6; }
cache=`echo Wno-missing-field-initializers | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wno-missing-field-initializers -c conftest.c 2>&1`"; then
@@ -14840,25 +15828,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
PYTHON_X_CFLAGS="-Wno-missing-field-initializers $PYTHON_X_CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-unused-parameter" >&5
-$as_echo_n "checking whether $CC supports -Wno-unused-parameter... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-unused-parameter" >&5
+printf %s "checking whether $CC supports -Wno-unused-parameter... " >&6; }
cache=`echo Wno-unused-parameter | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wno-unused-parameter -c conftest.c 2>&1`"; then
@@ -14871,25 +15860,26 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
PYTHON_X_CFLAGS="-Wno-unused-parameter $PYTHON_X_CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-unused-variable" >&5
-$as_echo_n "checking whether $CC supports -Wno-unused-variable... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wno-unused-variable" >&5
+printf %s "checking whether $CC supports -Wno-unused-variable... " >&6; }
cache=`echo Wno-unused-variable | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+if eval test \${cv_prog_cc_flag_$cache+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wno-unused-variable -c conftest.c 2>&1`"; then
@@ -14902,13 +15892,13 @@ rm -f conftest conftest.o conftest.c
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
:
PYTHON_X_CFLAGS="-Wno-unused-variable $PYTHON_X_CFLAGS"
else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
:
fi
@@ -14920,9 +15910,10 @@ fi
# Check for pyldnsx
# Check whether --with-pyldnsx was given.
-if test "${with_pyldnsx+set}" = set; then :
+if test ${with_pyldnsx+y}
+then :
withval=$with_pyldnsx;
-else
+else $as_nop
withval="with_pyldns"
fi
@@ -14961,9 +15952,10 @@ fi
ldns_with_p5_dns_ldns=no
# Check whether --with-p5-dns-ldns was given.
-if test "${with_p5_dns_ldns+set}" = set; then :
+if test ${with_p5_dns_ldns+y}
+then :
withval=$with_p5_dns_ldns;
-else
+else $as_nop
withval="no"
fi
@@ -14971,11 +15963,12 @@ ldns_have_perl=no
if test x_$withval != x_no; then
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PERL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PERL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $PERL in
[\\/]* | ?:[\\/]*)
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
@@ -14985,11 +15978,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -15001,11 +15998,11 @@ esac
fi
PERL=$ac_cv_path_PERL
if test -n "$PERL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+printf "%s\n" "$PERL" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -15051,11 +16048,12 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $AR in
[\\/]* | ?:[\\/]*)
ac_cv_path_AR="$AR" # Let the user override the test with a path.
@@ -15065,11 +16063,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_AR="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -15081,11 +16083,11 @@ esac
fi
AR=$ac_cv_path_AR
if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -15094,11 +16096,12 @@ if test -z "$ac_cv_path_AR"; then
ac_pt_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
case $ac_pt_AR in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path.
@@ -15108,11 +16111,15 @@ else
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_AR="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_AR="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -15124,11 +16131,11 @@ esac
fi
ac_pt_AR=$ac_cv_path_ac_pt_AR
if test -n "$ac_pt_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
-$as_echo "$ac_pt_AR" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
+printf "%s\n" "$ac_pt_AR" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_AR" = x; then
@@ -15136,8 +16143,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_pt_AR
@@ -15162,10 +16169,11 @@ tmp_LIBS=$LIBS
# Check whether --with-ssl was given.
-if test "${with_ssl+set}" = set; then :
+if test ${with_ssl+y}
+then :
withval=$with_ssl;
-else
+else $as_nop
withval="yes"
@@ -15174,8 +16182,8 @@ fi
withval=$withval
if test x_$withval != x_no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
-$as_echo_n "checking for SSL... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
+printf %s "checking for SSL... " >&6; }
if test x_$withval = x_ -o x_$withval = x_yes; then
withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr"
fi
@@ -15184,9 +16192,7 @@ $as_echo_n "checking for SSL... " >&6; }
if test -f "$dir/include/openssl/ssl.h"; then
found_ssl="yes"
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SSL /**/
-_ACEOF
+printf "%s\n" "#define HAVE_SSL /**/" >>confdefs.h
if test "$ssldir" != "/usr"; then
CPPFLAGS="$CPPFLAGS -I$ssldir/include"
@@ -15198,12 +16204,23 @@ _ACEOF
if test x_$found_ssl != x_yes; then
as_fn_error $? "Cannot find the SSL libraries in $withval" "$LINENO" 5
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
-$as_echo "found in $ssldir" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
+printf "%s\n" "found in $ssldir" >&6; }
HAVE_SSL=yes
if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
- LDFLAGS="$LDFLAGS -L$ssldir/lib"
- LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
+ if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
+ LDFLAGS="$LDFLAGS -L$ssldir/lib64"
+ LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib64"
+
+ if test "x$enable_rpath" = xyes; then
+ if echo "$ssldir/lib64" | grep "^/" >/dev/null; then
+ RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib64"
+ fi
+ fi
+
+ else
+ LDFLAGS="$LDFLAGS -L$ssldir/lib"
+ LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
if test "x$enable_rpath" = xyes; then
if echo "$ssldir/lib" | grep "^/" >/dev/null; then
@@ -15211,220 +16228,492 @@ $as_echo "found in $ssldir" >&6; }
fi
fi
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HMAC_Update in -lcrypto" >&5
-$as_echo_n "checking for HMAC_Update in -lcrypto... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_sha256 in -lcrypto" >&5
+printf %s "checking for EVP_sha256 in -lcrypto... " >&6; }
LIBS="$LIBS -lcrypto"
LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
- int HMAC_Update(void);
- (void)HMAC_Update();
+ int EVP_sha256(void);
+ (void)EVP_sha256();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
# check if -lwsock32 or -lgdi32 are needed.
BAKLIBS="$LIBS"
BAKSSLLIBS="$LIBSSL_LIBS"
- LIBS="$LIBS -lgdi32"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
-$as_echo_n "checking if -lcrypto needs -lgdi32... " >&6; }
+ LIBS="$LIBS -lgdi32 -lws2_32"
+ LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
+printf %s "checking if -lcrypto needs -lgdi32... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
- int HMAC_Update(void);
- (void)HMAC_Update();
+ int EVP_sha256(void);
+ (void)EVP_sha256();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
LIBSSL_LIBS="$BAKSSLLIBS"
LIBS="$LIBS -ldl"
LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
-$as_echo_n "checking if -lcrypto needs -ldl... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
+printf %s "checking if -lcrypto needs -ldl... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
- int HMAC_Update(void);
- (void)HMAC_Update();
+ int EVP_sha256(void);
+ (void)EVP_sha256();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
LIBSSL_LIBS="$BAKSSLLIBS"
LIBS="$LIBS -ldl -pthread"
LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
-$as_echo_n "checking if -lcrypto needs -ldl -pthread... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
+printf %s "checking if -lcrypto needs -ldl -pthread... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
-main ()
+main (void)
{
- int HMAC_Update(void);
- (void)HMAC_Update();
+ int EVP_sha256(void);
+ (void)EVP_sha256();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
fi
-for ac_header in openssl/ssl.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
"
-if test "x$ac_cv_header_openssl_ssl_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_SSL_H 1
-_ACEOF
+if test "x$ac_cv_header_openssl_ssl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_SSL_H 1" >>confdefs.h
fi
-done
+ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_openssl_err_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_ERR_H 1" >>confdefs.h
+
+fi
-for ac_header in openssl/err.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
"
-if test "x$ac_cv_header_openssl_err_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_ERR_H 1
-_ACEOF
+if test "x$ac_cv_header_openssl_rand_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_RAND_H 1" >>confdefs.h
fi
-done
-for ac_header in openssl/rand.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_rand_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_RAND_H 1
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5
+printf %s "checking for LibreSSL... " >&6; }
+if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_LIBRESSL 1" >>confdefs.h
+
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default"
+if test "x$ac_cv_header_openssl_ssl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_SSL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "openssl/evp.h" "ac_cv_header_openssl_evp_h" "$ac_includes_default"
+if test "x$ac_cv_header_openssl_evp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_EVP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "openssl/engine.h" "ac_cv_header_openssl_engine_h" "$ac_includes_default"
+if test "x$ac_cv_header_openssl_engine_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_ENGINE_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "openssl/conf.h" "ac_cv_header_openssl_conf_h" "$ac_includes_default"
+if test "x$ac_cv_header_openssl_conf_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_CONF_H 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_func "$LINENO" "EVP_sha256" "ac_cv_func_EVP_sha256"
+if test "x$ac_cv_func_EVP_sha256" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_sha384" "ac_cv_func_EVP_sha384"
+if test "x$ac_cv_func_EVP_sha384" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_SHA384 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_sha512" "ac_cv_func_EVP_sha512"
+if test "x$ac_cv_func_EVP_sha512" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_SHA512 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_PKEY_keygen" "ac_cv_func_EVP_PKEY_keygen"
+if test "x$ac_cv_func_EVP_PKEY_keygen" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_PKEY_KEYGEN 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "ECDSA_SIG_get0" "ac_cv_func_ECDSA_SIG_get0"
+if test "x$ac_cv_func_ECDSA_SIG_get0" = xyes
+then :
+ printf "%s\n" "#define HAVE_ECDSA_SIG_GET0 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_MD_CTX_new" "ac_cv_func_EVP_MD_CTX_new"
+if test "x$ac_cv_func_EVP_MD_CTX_new" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_MD_CTX_NEW 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "DSA_SIG_set0" "ac_cv_func_DSA_SIG_set0"
+if test "x$ac_cv_func_DSA_SIG_set0" = xyes
+then :
+ printf "%s\n" "#define HAVE_DSA_SIG_SET0 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "DSA_SIG_get0" "ac_cv_func_DSA_SIG_get0"
+if test "x$ac_cv_func_DSA_SIG_get0" = xyes
+then :
+ printf "%s\n" "#define HAVE_DSA_SIG_GET0 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_dss1" "ac_cv_func_EVP_dss1"
+if test "x$ac_cv_func_EVP_dss1" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_DSS1 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "DSA_get0_pqg" "ac_cv_func_DSA_get0_pqg"
+if test "x$ac_cv_func_DSA_get0_pqg" = xyes
+then :
+ printf "%s\n" "#define HAVE_DSA_GET0_PQG 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "DSA_get0_key" "ac_cv_func_DSA_get0_key"
+if test "x$ac_cv_func_DSA_get0_key" = xyes
+then :
+ printf "%s\n" "#define HAVE_DSA_GET0_KEY 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_cleanup" "ac_cv_func_EVP_cleanup"
+if test "x$ac_cv_func_EVP_cleanup" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_CLEANUP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "ENGINE_cleanup" "ac_cv_func_ENGINE_cleanup"
+if test "x$ac_cv_func_ENGINE_cleanup" = xyes
+then :
+ printf "%s\n" "#define HAVE_ENGINE_CLEANUP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "ENGINE_free" "ac_cv_func_ENGINE_free"
+if test "x$ac_cv_func_ENGINE_free" = xyes
+then :
+ printf "%s\n" "#define HAVE_ENGINE_FREE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "CRYPTO_cleanup_all_ex_data" "ac_cv_func_CRYPTO_cleanup_all_ex_data"
+if test "x$ac_cv_func_CRYPTO_cleanup_all_ex_data" = xyes
+then :
+ printf "%s\n" "#define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "ERR_free_strings" "ac_cv_func_ERR_free_strings"
+if test "x$ac_cv_func_ERR_free_strings" = xyes
+then :
+ printf "%s\n" "#define HAVE_ERR_FREE_STRINGS 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "CONF_modules_unload" "ac_cv_func_CONF_modules_unload"
+if test "x$ac_cv_func_CONF_modules_unload" = xyes
+then :
+ printf "%s\n" "#define HAVE_CONF_MODULES_UNLOAD 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "OPENSSL_init_ssl" "ac_cv_func_OPENSSL_init_ssl"
+if test "x$ac_cv_func_OPENSSL_init_ssl" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_INIT_SSL 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "OPENSSL_init_crypto" "ac_cv_func_OPENSSL_init_crypto"
+if test "x$ac_cv_func_OPENSSL_init_crypto" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_INIT_CRYPTO 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "ERR_load_crypto_strings" "ac_cv_func_ERR_load_crypto_strings"
+if test "x$ac_cv_func_ERR_load_crypto_strings" = xyes
+then :
+ printf "%s\n" "#define HAVE_ERR_LOAD_CRYPTO_STRINGS 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "CRYPTO_memcmp" "ac_cv_func_CRYPTO_memcmp"
+if test "x$ac_cv_func_CRYPTO_memcmp" = xyes
+then :
+ printf "%s\n" "#define HAVE_CRYPTO_MEMCMP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "EVP_PKEY_get_base_id" "ac_cv_func_EVP_PKEY_get_base_id"
+if test "x$ac_cv_func_EVP_PKEY_get_base_id" = xyes
+then :
+ printf "%s\n" "#define HAVE_EVP_PKEY_GET_BASE_ID 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_save_CFLAGS=$CFLAGS
+ ac_cv_c_undeclared_builtin_options='cannot detect'
+ for ac_arg in '' -fno-builtin; do
+ CFLAGS="$ac_save_CFLAGS $ac_arg"
+ # This test program should *not* compile successfully.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+(void) strchr;
+ ;
+ return 0;
+}
_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ # This test program should compile successfully.
+ # No library function is consistently available on
+ # freestanding implementations, so test against a dummy
+ # declaration. Include always-available headers on the
+ # off chance that they somehow elicit warnings.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+extern void ac_decl (int, char *);
+
+int
+main (void)
+{
+(void) ac_decl (0, (char *) 0);
+ (void) ac_decl;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ if test x"$ac_arg" = x
+then :
+ ac_cv_c_undeclared_builtin_options='none needed'
+else $as_nop
+ ac_cv_c_undeclared_builtin_options=$ac_arg
fi
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ done
+ CFLAGS=$ac_save_CFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+ case $ac_cv_c_undeclared_builtin_options in #(
+ 'cannot detect') :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
+ 'none needed') :
+ ac_c_undeclared_builtin_options='' ;; #(
+ *) :
+ ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+esac
-done
+ac_fn_check_decl "$LINENO" "EVP_PKEY_base_id" "ac_cv_have_decl_EVP_PKEY_base_id" "$ac_includes_default
+#include <openssl/evp.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_EVP_PKEY_base_id" = xyes
+then :
+ ac_have_decl=1
+else $as_nop
+ ac_have_decl=0
+fi
+printf "%s\n" "#define HAVE_DECL_EVP_PKEY_BASE_ID $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5
-$as_echo_n "checking for LibreSSL... " >&6; }
-if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+printf "%s\n" "#define HAVE_EVP_PKEY_BASE_ID 1" >>confdefs.h
-$as_echo "#define HAVE_LIBRESSL 1" >>confdefs.h
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-for ac_func in EVP_sha256 EVP_sha384 EVP_sha512 ENGINE_load_cryptodev EVP_PKEY_keygen ECDSA_SIG_get0 EVP_MD_CTX_new EVP_PKEY_base_id DSA_SIG_set0 DSA_SIG_get0 EVP_dss1 DSA_get0_pqg DSA_get0_key
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Checking for OpenSSL >= 3.0.0" >&5
+printf %s "checking Checking for OpenSSL >= 3.0.0... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <openssl/ssl.h>
+#if OPENSSL_VERSION_MAJOR >= 3
+#define SOMETHING
+#else
+This fails compiling.
+So either no OpenSSL at all (the include already failed), or the version < 3.0.0
+#endif
+
+int
+main (void)
+{
+
+
+ ;
+ return 0;
+}
_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ CFLAGS="-DOPENSSL_API_COMPAT=10100 $CFLAGS"
+
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-done
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# for macosx, see if glibtool exists and use that
@@ -15433,7 +16722,8 @@ done
#AC_CHECK_PROGS(libtool, [libtool15 libtool], [./libtool])
# Check whether --enable-sha2 was given.
-if test "${enable_sha2+set}" = set; then :
+if test ${enable_sha2+y}
+then :
enableval=$enable_sha2;
fi
@@ -15444,29 +16734,29 @@ case "$enable_sha2" in
if test "x$HAVE_SSL" != "xyes"; then
as_fn_error $? "SHA2 enabled, but no SSL support" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SHA256 and SHA512" >&5
-$as_echo_n "checking for SHA256 and SHA512... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA256 and SHA512" >&5
+printf %s "checking for SHA256 and SHA512... " >&6; }
ac_fn_c_check_func "$LINENO" "SHA256_Init" "ac_cv_func_SHA256_Init"
-if test "x$ac_cv_func_SHA256_Init" = xyes; then :
+if test "x$ac_cv_func_SHA256_Init" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "No SHA2 functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-sha2" "$LINENO" 5
fi
-cat >>confdefs.h <<_ACEOF
-#define USE_SHA2 1
-_ACEOF
+printf "%s\n" "#define USE_SHA2 1" >>confdefs.h
;;
esac
-# check wether gost also works
+# check whether gost also works
# Check whether --enable-gost was given.
-if test "${enable_gost+set}" = set; then :
+if test ${enable_gost+y}
+then :
enableval=$enable_gost;
fi
@@ -15476,44 +16766,59 @@ case "$enable_gost" in
*) if test "x$HAVE_SSL" != "xyes"; then
as_fn_error $? "GOST enabled, but no SSL support" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOST" >&5
-$as_echo_n "checking for GOST... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GOST" >&5
+printf %s "checking for GOST... " >&6; }
ac_fn_c_check_func "$LINENO" "EVP_PKEY_set_type_str" "ac_cv_func_EVP_PKEY_set_type_str"
-if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes; then :
+if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "OpenSSL >= 1.0.0 is needed for GOST support or rerun with --disable-gost" "$LINENO" 5
fi
ac_fn_c_check_func "$LINENO" "EC_KEY_new" "ac_cv_func_EC_KEY_new"
-if test "x$ac_cv_func_EC_KEY_new" = xyes; then :
+if test "x$ac_cv_func_EC_KEY_new" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "No ECC functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-gost" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GOST works" >&5
-$as_echo_n "checking if GOST works... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if GOST works" >&5
+printf %s "checking if GOST works... " >&6; }
if test c${cross_compiling} = cno; then
BAKCFLAGS="$CFLAGS"
if test -n "$ssldir"; then
+ if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
+ CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib64"
+ else
CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib"
+ fi
fi
-if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
+#ifdef HAVE_OPENSSL_SSL_H
#include <openssl/ssl.h>
+#endif
+#ifdef HAVE_OPENSSL_EVP_H
#include <openssl/evp.h>
+#endif
+#ifdef HAVE_OPENSSL_ENGINE_H
#include <openssl/engine.h>
+#endif
+#ifdef HAVE_OPENSSL_CONF_H
#include <openssl/conf.h>
+#endif
/* routine to load gost (from sldns) */
int load_gost_id(void)
{
@@ -15591,9 +16896,10 @@ int main(void) {
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
eval "ac_cv_c_gost_works=yes"
-else
+else $as_nop
eval "ac_cv_c_gost_works=no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -15606,37 +16912,39 @@ eval "ac_cv_c_gost_works=maybe"
fi
# Check whether --enable-gost-anyway was given.
-if test "${enable_gost_anyway+set}" = set; then :
+if test ${enable_gost_anyway+y}
+then :
enableval=$enable_gost_anyway;
fi
if test "$ac_cv_c_gost_works" != "no" -o "$enable_gost_anyway" = "yes"; then
if test "$ac_cv_c_gost_works" = "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, but compiling with GOST support anyway" >&5
-$as_echo "no, but compiling with GOST support anyway" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, but compiling with GOST support anyway" >&5
+printf "%s\n" "no, but compiling with GOST support anyway" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
use_gost="yes"
-$as_echo "#define USE_GOST 1" >>confdefs.h
+printf "%s\n" "#define USE_GOST 1" >>confdefs.h
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Gost support does not work because the engine is missing." >&5
-$as_echo "$as_me: WARNING: Gost support does not work because the engine is missing." >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Install gost-engine first or use the --enable-gost-anyway to compile with GOST support anyway" >&5
-$as_echo "$as_me: WARNING: Install gost-engine first or use the --enable-gost-anyway to compile with GOST support anyway" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See also https://github.com/gost-engine/engine/wiki for information about gost-engine" >&5
-$as_echo "$as_me: WARNING: See also https://github.com/gost-engine/engine/wiki for information about gost-engine" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Gost support does not work because the engine is missing." >&5
+printf "%s\n" "$as_me: WARNING: Gost support does not work because the engine is missing." >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Install gost-engine first or use the --enable-gost-anyway to compile with GOST support anyway" >&5
+printf "%s\n" "$as_me: WARNING: Install gost-engine first or use the --enable-gost-anyway to compile with GOST support anyway" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: See also https://github.com/gost-engine/engine/wiki for information about gost-engine" >&5
+printf "%s\n" "$as_me: WARNING: See also https://github.com/gost-engine/engine/wiki for information about gost-engine" >&2;}
fi
;;
esac
# Check whether --enable-ecdsa was given.
-if test "${enable_ecdsa+set}" = set; then :
+if test ${enable_ecdsa+y}
+then :
enableval=$enable_ecdsa;
fi
@@ -15647,185 +16955,199 @@ case "$enable_ecdsa" in
as_fn_error $? "ECDSA enabled, but no SSL support" "$LINENO" 5
fi
ac_fn_c_check_func "$LINENO" "ECDSA_sign" "ac_cv_func_ECDSA_sign"
-if test "x$ac_cv_func_ECDSA_sign" = xyes; then :
+if test "x$ac_cv_func_ECDSA_sign" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "OpenSSL does not support ECDSA: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
fi
ac_fn_c_check_func "$LINENO" "SHA384_Init" "ac_cv_func_SHA384_Init"
-if test "x$ac_cv_func_SHA384_Init" = xyes; then :
+if test "x$ac_cv_func_SHA384_Init" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "OpenSSL does not support SHA384: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
fi
- ac_fn_c_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
+ ac_fn_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
#include <openssl/evp.h>
-"
-if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes; then :
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes
+then :
ac_have_decl=1
-else
+else $as_nop
ac_have_decl=0
fi
+printf "%s\n" "#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-
-else
+else $as_nop
as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
fi
-ac_fn_c_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
+ac_fn_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
#include <openssl/evp.h>
-"
-if test "x$ac_cv_have_decl_NID_secp384r1" = xyes; then :
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_NID_secp384r1" = xyes
+then :
ac_have_decl=1
-else
+else $as_nop
ac_have_decl=0
fi
+printf "%s\n" "#define HAVE_DECL_NID_SECP384R1 $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_NID_SECP384R1 $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-
-else
+else $as_nop
as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
fi
# we now know we have ECDSA and the required curves.
-cat >>confdefs.h <<_ACEOF
-#define USE_ECDSA 1
-_ACEOF
+printf "%s\n" "#define USE_ECDSA 1" >>confdefs.h
;;
esac
# Check whether --enable-dsa was given.
-if test "${enable_dsa+set}" = set; then :
+if test ${enable_dsa+y}
+then :
enableval=$enable_dsa;
fi
case "$enable_dsa" in
no)
+ ldns_build_config_use_dsa=0
+
;;
*) # detect if DSA is supported, and turn it off if not.
ac_fn_c_check_func "$LINENO" "DSA_SIG_new" "ac_cv_func_DSA_SIG_new"
-if test "x$ac_cv_func_DSA_SIG_new" = xyes; then :
+if test "x$ac_cv_func_DSA_SIG_new" = xyes
+then :
-cat >>confdefs.h <<_ACEOF
-#define USE_DSA 1
-_ACEOF
+printf "%s\n" "#define USE_DSA 1" >>confdefs.h
+ ldns_build_config_use_dsa=1
-else
+
+else $as_nop
if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
fi
+ ldns_build_config_use_dsa=0
+
fi
;;
esac
# Check whether --enable-ed25519 was given.
-if test "${enable_ed25519+set}" = set; then :
+if test ${enable_ed25519+y}
+then :
enableval=$enable_ed25519;
fi
case "$enable_ed25519" in
- yes)
- if test "x$HAVE_SSL" != "xyes"; then
- as_fn_error $? "ED25519 enabled, but no SSL support" "$LINENO" 5
- fi
- ac_fn_c_check_decl "$LINENO" "NID_X25519" "ac_cv_have_decl_NID_X25519" "$ac_includes_default
+ no)
+ ldns_build_config_use_ed25519=0
+
+ ;;
+ *) ac_fn_check_decl "$LINENO" "NID_ED25519" "ac_cv_have_decl_NID_ED25519" "$ac_includes_default
#include <openssl/evp.h>
-"
-if test "x$ac_cv_have_decl_NID_X25519" = xyes; then :
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_NID_ED25519" = xyes
+then :
ac_have_decl=1
-else
+else $as_nop
ac_have_decl=0
fi
+printf "%s\n" "#define HAVE_DECL_NID_ED25519 $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_NID_X25519 $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-else
- as_fn_error $? "OpenSSL does not support the EDDSA curve: please upgrade OpenSSL or rerun with --disable-ed25519" "$LINENO" 5
-fi
+printf "%s\n" "#define USE_ED25519 1" >>confdefs.h
+ ldns_build_config_use_ed25519=1
-cat >>confdefs.h <<_ACEOF
-#define USE_ED25519 1
-_ACEOF
+
+else $as_nop
+ if test "x$enable_ed25519" = "xyes"; then as_fn_error $? "OpenSSL does not support ED25519 and you used --enable-ed25519." "$LINENO" 5
+ fi
+ ldns_build_config_use_ed25519=0
+
+fi
;;
- *|no) ;;
esac
# Check whether --enable-ed448 was given.
-if test "${enable_ed448+set}" = set; then :
+if test ${enable_ed448+y}
+then :
enableval=$enable_ed448;
fi
case "$enable_ed448" in
- yes)
- if test "x$HAVE_SSL" != "xyes"; then
- as_fn_error $? "ED448 enabled, but no SSL support" "$LINENO" 5
- fi
- ac_fn_c_check_decl "$LINENO" "NID_X448" "ac_cv_have_decl_NID_X448" "$ac_includes_default
+ no)
+ ldns_build_config_use_ed448=0
+
+ ;;
+ *) ac_fn_check_decl "$LINENO" "NID_ED448" "ac_cv_have_decl_NID_ED448" "$ac_includes_default
#include <openssl/evp.h>
-"
-if test "x$ac_cv_have_decl_NID_X448" = xyes; then :
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_NID_ED448" = xyes
+then :
ac_have_decl=1
-else
+else $as_nop
ac_have_decl=0
fi
+printf "%s\n" "#define HAVE_DECL_NID_ED448 $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_NID_X448 $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-else
- as_fn_error $? "OpenSSL does not support the EDDSA curve: please upgrade OpenSSL or rerun with --disable-ed448" "$LINENO" 5
-fi
+printf "%s\n" "#define USE_ED448 1" >>confdefs.h
+ ldns_build_config_use_ed448=1
-cat >>confdefs.h <<_ACEOF
-#define USE_ED448 1
-_ACEOF
+
+else $as_nop
+ if test "x$enable_ed448" = "xyes"; then as_fn_error $? "OpenSSL does not support ED448 and you used --enable-ed448." "$LINENO" 5
+ fi
+ ldns_build_config_use_ed448=0
+
+fi
;;
- *|no) ;;
esac
# Check whether --enable-dane was given.
-if test "${enable_dane+set}" = set; then :
+if test ${enable_dane+y}
+then :
enableval=$enable_dane;
fi
# Check whether --enable-dane-verify was given.
-if test "${enable_dane_verify+set}" = set; then :
+if test ${enable_dane_verify+y}
+then :
enableval=$enable_dane_verify;
fi
# Check whether --enable-dane-ta-usage was given.
-if test "${enable_dane_ta_usage+set}" = set; then :
+if test ${enable_dane_ta_usage+y}
+then :
enableval=$enable_dane_ta_usage;
fi
# Check whether --enable-full-dane was given.
-if test "${enable_full_dane+set}" = set; then :
+if test ${enable_full_dane+y}
+then :
enableval=$enable_full_dane;
enable_dane_ta_usage=yes
enable_dane_verify=yes
@@ -15834,7 +17156,8 @@ if test "${enable_full_dane+set}" = set; then :
fi
# Check whether --enable-no-dane-ta-usage was given.
-if test "${enable_no_dane_ta_usage+set}" = set; then :
+if test ${enable_no_dane_ta_usage+y}
+then :
enableval=$enable_no_dane_ta_usage;
enable_dane_ta_usage=no
enable_dane_verify=yes
@@ -15843,7 +17166,8 @@ if test "${enable_no_dane_ta_usage+set}" = set; then :
fi
# Check whether --enable-no-dane-verify was given.
-if test "${enable_no_dane_verify+set}" = set; then :
+if test ${enable_no_dane_verify+y}
+then :
enableval=$enable_no_dane_verify;
enable_dane_ta_usage=no
enable_dane_verify=no
@@ -15864,18 +17188,17 @@ case "$enable_dane" in
as_fn_error $? "DANE enabled, but no SSL support" "$LINENO" 5
fi
ac_fn_c_check_func "$LINENO" "X509_check_ca" "ac_cv_func_X509_check_ca"
-if test "x$ac_cv_func_X509_check_ca" = xyes; then :
+if test "x$ac_cv_func_X509_check_ca" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "OpenSSL does not support DANE: please upgrade OpenSSL or rerun with --disable-dane" "$LINENO" 5
fi
ldns_build_config_use_dane=1
-cat >>confdefs.h <<_ACEOF
-#define USE_DANE 1
-_ACEOF
+printf "%s\n" "#define USE_DANE 1" >>confdefs.h
case "$enable_dane_verify" in
no)
@@ -15888,30 +17211,29 @@ _ACEOF
ldns_build_config_use_dane_verify=1
-cat >>confdefs.h <<_ACEOF
-#define USE_DANE_VERIFY 1
-_ACEOF
+printf "%s\n" "#define USE_DANE_VERIFY 1" >>confdefs.h
case "$enable_dane_ta_usage" in
no)
ldns_build_config_use_dane_ta_usage=0
;;
- *) LIBS="-lssl $LIBS"
+ *) danetmpLIBS="$LIBS"
+ LIBS="-lssl -lcrypto $LIBS"
ac_fn_c_check_func "$LINENO" "SSL_get0_dane" "ac_cv_func_SSL_get0_dane"
-if test "x$ac_cv_func_SSL_get0_dane" = xyes; then :
+if test "x$ac_cv_func_SSL_get0_dane" = xyes
+then :
-else
+else $as_nop
as_fn_error $? "OpenSSL does not support offline DANE verification (Needed for the DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun with --disable-dane-verify or --disable-dane-ta-usage" "$LINENO" 5
fi
- LIBSSL_LIBS="$LIBSSL_LIBS -lssl"
+ LIBSSL_LIBS="-lssl $LIBSSL_LIBS"
+ LIBS="$danetmpLIBS"
ldns_build_config_use_dane_ta_usage=1
-cat >>confdefs.h <<_ACEOF
-#define USE_DANE_TA_USAGE 1
-_ACEOF
+printf "%s\n" "#define USE_DANE_TA_USAGE 1" >>confdefs.h
;;
esac
@@ -15920,39 +17242,38 @@ _ACEOF
esac
# Check whether --enable-rrtype-ninfo was given.
-if test "${enable_rrtype_ninfo+set}" = set; then :
+if test ${enable_rrtype_ninfo+y}
+then :
enableval=$enable_rrtype_ninfo;
fi
case "$enable_rrtype_ninfo" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define RRTYPE_NINFO /**/
-_ACEOF
+printf "%s\n" "#define RRTYPE_NINFO /**/" >>confdefs.h
;;
no|*)
;;
esac
# Check whether --enable-rrtype-rkey was given.
-if test "${enable_rrtype_rkey+set}" = set; then :
+if test ${enable_rrtype_rkey+y}
+then :
enableval=$enable_rrtype_rkey;
fi
case "$enable_rrtype_rkey" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define RRTYPE_RKEY /**/
-_ACEOF
+printf "%s\n" "#define RRTYPE_RKEY /**/" >>confdefs.h
;;
no|*)
;;
esac
# Check whether --enable-rrtype-openpgpkey was given.
-if test "${enable_rrtype_openpgpkey+set}" = set; then :
+if test ${enable_rrtype_openpgpkey+y}
+then :
enableval=$enable_rrtype_openpgpkey;
fi
@@ -15961,50 +17282,98 @@ case "$enable_rrtype_openpgpkey" in
;;
yes|*)
-cat >>confdefs.h <<_ACEOF
-#define RRTYPE_OPENPGPKEY /**/
-_ACEOF
+printf "%s\n" "#define RRTYPE_OPENPGPKEY /**/" >>confdefs.h
;;
esac
# Check whether --enable-rrtype-ta was given.
-if test "${enable_rrtype_ta+set}" = set; then :
+if test ${enable_rrtype_ta+y}
+then :
enableval=$enable_rrtype_ta;
fi
case "$enable_rrtype_ta" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define RRTYPE_TA /**/
-_ACEOF
+printf "%s\n" "#define RRTYPE_TA /**/" >>confdefs.h
;;
no|*)
;;
esac
# Check whether --enable-rrtype-avc was given.
-if test "${enable_rrtype_avc+set}" = set; then :
+if test ${enable_rrtype_avc+y}
+then :
enableval=$enable_rrtype_avc;
fi
case "$enable_rrtype_avc" in
yes)
-cat >>confdefs.h <<_ACEOF
-#define RRTYPE_AVC /**/
-_ACEOF
+printf "%s\n" "#define RRTYPE_AVC /**/" >>confdefs.h
+
+ ;;
+ no|*)
+ ;;
+esac
+# Check whether --enable-rrtype-doa was given.
+if test ${enable_rrtype_doa+y}
+then :
+ enableval=$enable_rrtype_doa;
+fi
+
+case "$enable_rrtype_doa" in
+ yes)
+
+printf "%s\n" "#define RRTYPE_DOA /**/" >>confdefs.h
;;
no|*)
;;
esac
+# Check whether --enable-rrtype-amtrelay was given.
+if test ${enable_rrtype_amtrelay+y}
+then :
+ enableval=$enable_rrtype_amtrelay;
+fi
+
+case "$enable_rrtype_amtrelay" in
+ yes)
+
+printf "%s\n" "#define RRTYPE_AMTRELAY /**/" >>confdefs.h
+
+ ;;
+ no|*)
+ ;;
+esac
+# Check whether --enable-rrtype-svcb-https was given.
+if test ${enable_rrtype_svcb_https+y}
+then :
+ enableval=$enable_rrtype_svcb_https;
+fi
+
+case "$enable_rrtype_svcb_https" in
+ no)
+ ;;
+ yes|*)
+
+printf "%s\n" "#define RRTYPE_SVCB_HTTPS /**/" >>confdefs.h
+
+ ;;
+esac
+
+
if test "x$HAVE_SSL" = "xyes"; then
-LIBSSL_SSL_LIBS="-lssl $LIBSSL_LIBS"
+ if echo "$LIBSSL_LIBS" | grep -- "-lssl" >/dev/null 2>&1; then
+ LIBSSL_SSL_LIBS="$LIBSSL_LIBS"
+ else
+ LIBSSL_SSL_LIBS="-lssl $LIBSSL_LIBS"
+ fi
+ LIBSSL_SSL_LIBS="$LIBSSL_SSL_LIBS"
fi
CPPFLAGS=$tmp_CPPFLAGS
@@ -16015,9 +17384,10 @@ LIBS=$tmp_LIBS
# add option to disable the evil rpath
# Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
+if test ${enable_rpath+y}
+then :
enableval=$enable_rpath; enable_rpath=$enableval
-else
+else $as_nop
enable_rpath=yes
fi
@@ -16043,11 +17413,12 @@ fi
#],[])
# should define WORDS_BIGENDIAN if the system is big-endian
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+printf %s "checking whether byte ordering is bigendian... " >&6; }
+if test ${ac_cv_c_bigendian+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_bigendian=unknown
# See if we're dealing with a universal compiler.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16058,7 +17429,8 @@ else
typedef int dummy;
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
# Check for potential -arch flags. It is not universal unless
# there are at least two -arch flags with different values.
@@ -16082,7 +17454,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
fi
done
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test $ac_cv_c_bigendian = unknown; then
# See if sys/param.h defines the BYTE_ORDER macro.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16091,7 +17463,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
#include <sys/param.h>
int
-main ()
+main (void)
{
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
&& defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
@@ -16103,7 +17475,8 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
# It does; now see whether it defined to BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -16111,7 +17484,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
#include <sys/param.h>
int
-main ()
+main (void)
{
#if BYTE_ORDER != BIG_ENDIAN
not big endian
@@ -16121,14 +17494,15 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_bigendian=yes
-else
+else $as_nop
ac_cv_c_bigendian=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
@@ -16137,7 +17511,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
#include <limits.h>
int
-main ()
+main (void)
{
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
bogus endian macros
@@ -16147,14 +17521,15 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
# It does; now see whether it defined to _BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
int
-main ()
+main (void)
{
#ifndef _BIG_ENDIAN
not big endian
@@ -16164,31 +17539,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_bigendian=yes
-else
+else $as_nop
ac_cv_c_bigendian=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# Compile a test program.
- if test "$cross_compiling" = yes; then :
+ if test "$cross_compiling" = yes
+then :
# Try to guess by grepping values from an object file.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-short int ascii_mm[] =
+unsigned short int ascii_mm[] =
{ 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- short int ascii_ii[] =
+ unsigned short int ascii_ii[] =
{ 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
int use_ascii (int i) {
return ascii_mm[i] + ascii_ii[i];
}
- short int ebcdic_ii[] =
+ unsigned short int ebcdic_ii[] =
{ 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- short int ebcdic_mm[] =
+ unsigned short int ebcdic_mm[] =
{ 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
int use_ebcdic (int i) {
return ebcdic_mm[i] + ebcdic_ii[i];
@@ -16196,14 +17573,15 @@ short int ascii_mm[] =
extern int foo;
int
-main ()
+main (void)
{
return use_ascii (foo) == use_ebcdic (foo);
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
ac_cv_c_bigendian=yes
fi
@@ -16216,13 +17594,13 @@ if ac_fn_c_try_compile "$LINENO"; then :
fi
fi
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
-main ()
+main (void)
{
/* Are we little or big endian? From Harbison&Steele. */
@@ -16238,9 +17616,10 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
ac_cv_c_bigendian=no
-else
+else $as_nop
ac_cv_c_bigendian=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -16249,17 +17628,17 @@ fi
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+printf "%s\n" "$ac_cv_c_bigendian" >&6; }
case $ac_cv_c_bigendian in #(
yes)
- $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+ printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
;; #(
no)
;; #(
universal)
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
;; #(
*)
@@ -16269,232 +17648,279 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
# Checks for header files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
+# Autoupdate added the next two lines to ensure that your configure
+# script's behavior did not change. They are probably safe to remove.
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in egrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
else
- ac_cv_header_stdc=no
+ ac_cv_path_EGREP=$EGREP
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-else
- ac_cv_header_stdc=no
+ fi
fi
-rm -f conftest*
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf "%s\n" "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
-fi
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
+ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes
+then :
+
+printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
fi
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+printf %s "checking for stdbool.h that conforms to C99... " >&6; }
+if test ${ac_cv_header_stdbool_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+#include <stdbool.h>
-fi
+ #ifndef __bool_true_false_are_defined
+ #error "__bool_true_false_are_defined is not defined"
+ #endif
+ char a[__bool_true_false_are_defined == 1 ? 1 : -1];
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
-$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
-if ${ac_cv_header_stdbool_h+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+ /* Regardless of whether this is C++ or "_Bool" is a
+ valid type name, "true" and "false" should be usable
+ in #if expressions and integer constant expressions,
+ and "bool" should be a valid type name. */
- #include <stdbool.h>
- #ifndef bool
- "error: bool is not defined"
+ #if !true
+ #error "'true' is not true"
#endif
- #ifndef false
- "error: false is not defined"
+ #if true != 1
+ #error "'true' is not equal to 1"
#endif
+ char b[true == 1 ? 1 : -1];
+ char c[true];
+
#if false
- "error: false is not 0"
+ #error "'false' is not false"
#endif
- #ifndef true
- "error: true is not defined"
- #endif
- #if true != 1
- "error: true is not 1"
- #endif
- #ifndef __bool_true_false_are_defined
- "error: __bool_true_false_are_defined is not defined"
+ #if false != 0
+ #error "'false' is not equal to 0"
#endif
+ char d[false == 0 ? 1 : -1];
+
+ enum { e = false, f = true, g = false * true, h = true * 256 };
+
+ char i[(bool) 0.5 == true ? 1 : -1];
+ char j[(bool) 0.0 == false ? 1 : -1];
+ char k[sizeof (bool) > 0 ? 1 : -1];
+
+ struct sb { bool s: 1; bool t; } s;
+ char l[sizeof s.t > 0 ? 1 : -1];
- struct s { _Bool s: 1; _Bool t; } s;
-
- char a[true == 1 ? 1 : -1];
- char b[false == 0 ? 1 : -1];
- char c[__bool_true_false_are_defined == 1 ? 1 : -1];
- char d[(bool) 0.5 == true ? 1 : -1];
- /* See body of main program for 'e'. */
- char f[(_Bool) 0.0 == false ? 1 : -1];
- char g[true];
- char h[sizeof (_Bool)];
- char i[sizeof s.t];
- enum { j = false, k = true, l = false * true, m = true * 256 };
/* The following fails for
HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
- _Bool n[m];
- char o[sizeof n == m * sizeof n[0] ? 1 : -1];
- char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+ bool m[h];
+ char n[sizeof m == h * sizeof m[0] ? 1 : -1];
+ char o[-1 - (bool) 0 < 0 ? 1 : -1];
/* Catch a bug in an HP-UX C compiler. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
*/
- _Bool q = true;
- _Bool *pq = &q;
+ bool p = true;
+ bool *pp = &p;
+
+ /* C 1999 specifies that bool, true, and false are to be
+ macros, but C++ 2011 and later overrule this. */
+ #if __cplusplus < 201103
+ #ifndef bool
+ #error "bool is not defined"
+ #endif
+ #ifndef false
+ #error "false is not defined"
+ #endif
+ #ifndef true
+ #error "true is not defined"
+ #endif
+ #endif
+
+ /* If _Bool is available, repeat with it all the tests
+ above that used bool. */
+ #ifdef HAVE__BOOL
+ struct sB { _Bool s: 1; _Bool t; } t;
+
+ char q[(_Bool) 0.5 == true ? 1 : -1];
+ char r[(_Bool) 0.0 == false ? 1 : -1];
+ char u[sizeof (_Bool) > 0 ? 1 : -1];
+ char v[sizeof t.t > 0 ? 1 : -1];
+
+ _Bool w[h];
+ char x[sizeof m == h * sizeof m[0] ? 1 : -1];
+ char y[-1 - (_Bool) 0 < 0 ? 1 : -1];
+ _Bool z = true;
+ _Bool *pz = &p;
+ #endif
int
-main ()
+main (void)
{
- bool e = &s;
- *pq |= q;
- *pq |= ! q;
- /* Refer to every declared value, to avoid compiler optimizations. */
- return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
- + !m + !n + !o + !p + !q + !pq);
+ bool ps = &s;
+ *pp |= p;
+ *pp |= ! p;
+
+ #ifdef HAVE__BOOL
+ _Bool pt = &t;
+ *pz |= z;
+ *pz |= ! z;
+ #endif
+
+ /* Refer to every declared value, so they cannot be
+ discarded as unused. */
+ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
+ + !l + !m + !n + !o + !p + !pp + !ps
+ #ifdef HAVE__BOOL
+ + !q + !r + !u + !v + !w + !x + !y + !z + !pt
+ #endif
+ );
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_header_stdbool_h=yes
-else
+else $as_nop
ac_cv_header_stdbool_h=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
-$as_echo "$ac_cv_header_stdbool_h" >&6; }
- ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
-if test "x$ac_cv_type__Bool" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define HAVE__BOOL 1
-_ACEOF
+if test $ac_cv_header_stdbool_h = yes; then
+printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
fi
+#AC_HEADER_SYS_WAIT
+#AC_CHECK_HEADERS([getopt.h fcntl.h stdlib.h string.h strings.h unistd.h])
+# do the very minimum - we can always extend this
+ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_getopt_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
-if test $ac_cv_header_stdbool_h = yes; then
+fi
+ac_fn_c_check_header_compile "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_stdarg_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDARG_H 1" >>confdefs.h
-$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
+fi
+ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_openssl_ssl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_OPENSSL_SSL_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_netinet_in_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
-#AC_HEADER_SYS_WAIT
-#AC_CHECK_HEADERS([getopt.h fcntl.h stdlib.h string.h strings.h unistd.h])
-# do the very minimum - we can always extend this
-for ac_header in getopt.h stdarg.h openssl/ssl.h netinet/in.h time.h arpa/inet.h netdb.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+fi
+ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_arpa_inet_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_netdb_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
-for ac_header in sys/param.h sys/mount.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+fi
+
+ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default
#if HAVE_SYS_PARAM_H
# include <sys/param.h>
@@ -16502,14 +17928,24 @@ ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_include
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_sys_param_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default
+
+ #if HAVE_SYS_PARAM_H
+ # include <sys/param.h>
+ #endif
-done
+
+"
+if test "x$ac_cv_header_sys_mount_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_MOUNT_H 1" >>confdefs.h
+
+fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default
@@ -16519,34 +17955,35 @@ ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h
"
-if test "x$ac_cv_header_sys_socket_h" = xyes; then :
+if test "x$ac_cv_header_sys_socket_h" = xyes
+then :
include_sys_socket_h='#include <sys/socket.h>'
-$as_echo "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-else
+else $as_nop
include_sys_socket_h=''
fi
-
ac_fn_c_check_header_compile "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default
"
-if test "x$ac_cv_header_inttypes_h" = xyes; then :
+if test "x$ac_cv_header_inttypes_h" = xyes
+then :
include_inttypes_h='#include <inttypes.h>'
-$as_echo "#define HAVE_INTTYPES_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_INTTYPES_H 1" >>confdefs.h
ldns_build_config_have_inttypes_h=1
-else
+else $as_nop
include_inttypes_h=''
ldns_build_config_have_inttypes_h=0
@@ -16555,36 +17992,36 @@ ldns_build_config_have_inttypes_h=0
fi
-
ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default
"
-if test "x$ac_cv_header_sys_types_h" = xyes; then :
+if test "x$ac_cv_header_sys_types_h" = xyes
+then :
include_systypes_h='#include <sys/types.h>'
-$as_echo "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
-else
+else $as_nop
include_systypes_h=''
fi
-
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default
"
-if test "x$ac_cv_header_unistd_h" = xyes; then :
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
include_unistd_h='#include <unistd.h>'
-$as_echo "#define HAVE_UNISTD_H 1" >>confdefs.h
+printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
-else
+else $as_nop
include_unistd_h=''
@@ -16592,16 +18029,16 @@ fi
-
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
-$as_echo_n "checking size of time_t... " >&6; }
-if ${ac_cv_sizeof_time_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
+printf %s "checking size of time_t... " >&6; }
+if test ${ac_cv_sizeof_time_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "
$ac_includes_default
#ifdef TIME_WITH_SYS_TIME
@@ -16615,12 +18052,13 @@ $ac_includes_default
# endif
#endif
-"; then :
+"
+then :
-else
+else $as_nop
if test "$ac_cv_type_time_t" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (time_t)
See \`config.log' for more details" "$LINENO" 5; }
else
@@ -16629,36 +18067,30 @@ See \`config.log' for more details" "$LINENO" 5; }
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
-$as_echo "$ac_cv_sizeof_time_t" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
+printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_TIME_T $ac_cv_sizeof_time_t
-_ACEOF
+printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
if test x_$with_examples != x_no; then
-for ac_header in pcap.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "pcap.h" "ac_cv_header_pcap_h" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "pcap.h" "ac_cv_header_pcap_h" "$ac_includes_default
"
-if test "x$ac_cv_header_pcap_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PCAP_H 1
-_ACEOF
+if test "x$ac_cv_header_pcap_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_PCAP_H 1" >>confdefs.h
fi
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_offline in -lpcap" >&5
-$as_echo_n "checking for pcap_open_offline in -lpcap... " >&6; }
-if ${ac_cv_lib_pcap_pcap_open_offline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pcap_open_offline in -lpcap" >&5
+printf %s "checking for pcap_open_offline in -lpcap... " >&6; }
+if test ${ac_cv_lib_pcap_pcap_open_offline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpcap $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16667,48 +18099,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
char pcap_open_offline ();
int
-main ()
+main (void)
{
return pcap_open_offline ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_lib_pcap_pcap_open_offline=yes
-else
+else $as_nop
ac_cv_lib_pcap_pcap_open_offline=no
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcap_pcap_open_offline" >&5
-$as_echo "$ac_cv_lib_pcap_pcap_open_offline" >&6; }
-if test "x$ac_cv_lib_pcap_pcap_open_offline" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcap_pcap_open_offline" >&5
+printf "%s\n" "$ac_cv_lib_pcap_pcap_open_offline" >&6; }
+if test "x$ac_cv_lib_pcap_pcap_open_offline" = xyes
+then :
-$as_echo "#define HAVE_LIBPCAP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LIBPCAP 1" >>confdefs.h
LIBPCAP_LIBS=-lpcap
-else
+else $as_nop
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can't find pcap library (needed for ldns-dpa, will not build dpa now.)" >&5
-$as_echo "$as_me: WARNING: Can't find pcap library (needed for ldns-dpa, will not build dpa now.)" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Can't find pcap library (needed for ldns-dpa, will not build dpa now.)" >&5
+printf "%s\n" "$as_me: WARNING: Can't find pcap library (needed for ldns-dpa, will not build dpa now.)" >&2;}
fi
-for ac_header in netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/igmp.h netinet/if_ether.h netinet/ip6.h net/ethernet.h netinet/ip_compat.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
+ac_fn_c_check_header_compile "$LINENO" "netinet/in_systm.h" "ac_cv_header_netinet_in_systm_h" "
$ac_includes_default
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
@@ -16723,14 +18151,171 @@ $ac_includes_default
#include <net/if.h>
#endif
"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_netinet_in_systm_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IN_SYSTM_H 1" >>confdefs.h
fi
+ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_net_if_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
-done
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/ip.h" "ac_cv_header_netinet_ip_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_netinet_ip_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/udp.h" "ac_cv_header_netinet_udp_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_netinet_udp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_UDP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/igmp.h" "ac_cv_header_netinet_igmp_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_netinet_igmp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IGMP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/if_ether.h" "ac_cv_header_netinet_if_ether_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_netinet_if_ether_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IF_ETHER_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/ip6.h" "ac_cv_header_netinet_ip6_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_netinet_ip6_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IP6_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "net/ethernet.h" "ac_cv_header_net_ethernet_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_net_ethernet_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NET_ETHERNET_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "netinet/ip_compat.h" "ac_cv_header_netinet_ip_compat_h" "
+$ac_includes_default
+#ifdef HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+"
+if test "x$ac_cv_header_netinet_ip_compat_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_NETINET_IP_COMPAT_H 1" >>confdefs.h
+
+fi
fi
@@ -16745,11 +18330,12 @@ $ac_includes_default
#endif
"
-if test "x$ac_cv_type_socklen_t" = xyes; then :
+if test "x$ac_cv_type_socklen_t" = xyes
+then :
-else
+else $as_nop
-$as_echo "#define socklen_t int" >>confdefs.h
+printf "%s\n" "#define socklen_t int" >>confdefs.h
fi
@@ -16761,35 +18347,32 @@ else
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
+if test "x$ac_cv_type_size_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
+printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes; then :
+if test "x$ac_cv_type_ssize_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define ssize_t int
-_ACEOF
+printf "%s\n" "#define ssize_t int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_intptr_t" = xyes; then :
+if test "x$ac_cv_type_intptr_t" = xyes
+then :
-else
+else $as_nop
-cat >>confdefs.h <<_ACEOF
-#define intptr_t size_t
-_ACEOF
+printf "%s\n" "#define intptr_t size_t" >>confdefs.h
fi
@@ -16801,11 +18384,12 @@ ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
# include <netinet/in.h>
#endif
"
-if test "x$ac_cv_type_in_addr_t" = xyes; then :
+if test "x$ac_cv_type_in_addr_t" = xyes
+then :
-else
+else $as_nop
-$as_echo "#define in_addr_t uint32_t" >>confdefs.h
+printf "%s\n" "#define in_addr_t uint32_t" >>confdefs.h
fi
@@ -16817,11 +18401,12 @@ ac_fn_c_check_type "$LINENO" "in_port_t" "ac_cv_type_in_port_t" "
# include <netinet/in.h>
#endif
"
-if test "x$ac_cv_type_in_port_t" = xyes; then :
+if test "x$ac_cv_type_in_port_t" = xyes
+then :
-else
+else $as_nop
-$as_echo "#define in_port_t uint16_t" >>confdefs.h
+printf "%s\n" "#define in_port_t uint16_t" >>confdefs.h
fi
@@ -16840,9 +18425,10 @@ ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_memb
#endif
"
-if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes; then :
+if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes
+then :
-else
+else $as_nop
ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "__ss_family" "ac_cv_member_struct_sockaddr_storage___ss_family" "$ac_includes_default
#ifdef HAVE_NETINET_IN_H
@@ -16859,158 +18445,29 @@ else
#endif
"
-if test "x$ac_cv_member_struct_sockaddr_storage___ss_family" = xyes; then :
-
-
-$as_echo "#define ss_family __ss_family" >>confdefs.h
-
-
-fi
-
-
-fi
-
-
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_malloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_malloc_0_nonnull=yes
-else
- ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
+if test "x$ac_cv_member_struct_sockaddr_storage___ss_family" = xyes
+then :
-else
- $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
+printf "%s\n" "#define ss_family __ss_family" >>confdefs.h
-$as_echo "#define malloc rpl_malloc" >>confdefs.h
-
fi
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5
-$as_echo_n "checking for GNU libc compatible realloc... " >&6; }
-if ${ac_cv_func_realloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_realloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *realloc ();
-#endif
-
-int
-main ()
-{
-return ! realloc (0, 0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_realloc_0_nonnull=yes
-else
- ac_cv_func_realloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_realloc_0_nonnull" >&6; }
-if test $ac_cv_func_realloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_REALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_REALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" realloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS realloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define realloc rpl_realloc" >>confdefs.h
-
fi
+# AC_FUNC_MALLOC suffers false failures and causes Asan failures.
+# AC_FUNC_MALLOC
+# AC_FUNC_REALLOC
ac_fn_c_check_func "$LINENO" "b64_pton" "ac_cv_func_b64_pton"
-if test "x$ac_cv_func_b64_pton" = xyes; then :
- $as_echo "#define HAVE_B64_PTON 1" >>confdefs.h
+if test "x$ac_cv_func_b64_pton" = xyes
+then :
+ printf "%s\n" "#define HAVE_B64_PTON 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" b64_pton.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS b64_pton.$ac_objext"
@@ -17019,12 +18476,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "b64_ntop" "ac_cv_func_b64_ntop"
-if test "x$ac_cv_func_b64_ntop" = xyes; then :
- $as_echo "#define HAVE_B64_NTOP 1" >>confdefs.h
+if test "x$ac_cv_func_b64_ntop" = xyes
+then :
+ printf "%s\n" "#define HAVE_B64_NTOP 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" b64_ntop.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS b64_ntop.$ac_objext"
@@ -17033,12 +18490,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "calloc" "ac_cv_func_calloc"
-if test "x$ac_cv_func_calloc" = xyes; then :
- $as_echo "#define HAVE_CALLOC 1" >>confdefs.h
+if test "x$ac_cv_func_calloc" = xyes
+then :
+ printf "%s\n" "#define HAVE_CALLOC 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" calloc.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS calloc.$ac_objext"
@@ -17047,12 +18504,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm"
-if test "x$ac_cv_func_timegm" = xyes; then :
- $as_echo "#define HAVE_TIMEGM 1" >>confdefs.h
+if test "x$ac_cv_func_timegm" = xyes
+then :
+ printf "%s\n" "#define HAVE_TIMEGM 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" timegm.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS timegm.$ac_objext"
@@ -17061,12 +18518,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
-if test "x$ac_cv_func_gmtime_r" = xyes; then :
- $as_echo "#define HAVE_GMTIME_R 1" >>confdefs.h
+if test "x$ac_cv_func_gmtime_r" = xyes
+then :
+ printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" gmtime_r.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS gmtime_r.$ac_objext"
@@ -17075,12 +18532,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "ctime_r" "ac_cv_func_ctime_r"
-if test "x$ac_cv_func_ctime_r" = xyes; then :
- $as_echo "#define HAVE_CTIME_R 1" >>confdefs.h
+if test "x$ac_cv_func_ctime_r" = xyes
+then :
+ printf "%s\n" "#define HAVE_CTIME_R 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" ctime_r.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS ctime_r.$ac_objext"
@@ -17089,12 +18546,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r"
-if test "x$ac_cv_func_localtime_r" = xyes; then :
- $as_echo "#define HAVE_LOCALTIME_R 1" >>confdefs.h
+if test "x$ac_cv_func_localtime_r" = xyes
+then :
+ printf "%s\n" "#define HAVE_LOCALTIME_R 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" localtime_r.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS localtime_r.$ac_objext"
@@ -17103,12 +18560,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "isblank" "ac_cv_func_isblank"
-if test "x$ac_cv_func_isblank" = xyes; then :
- $as_echo "#define HAVE_ISBLANK 1" >>confdefs.h
+if test "x$ac_cv_func_isblank" = xyes
+then :
+ printf "%s\n" "#define HAVE_ISBLANK 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" isblank.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS isblank.$ac_objext"
@@ -17117,12 +18574,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "isascii" "ac_cv_func_isascii"
-if test "x$ac_cv_func_isascii" = xyes; then :
- $as_echo "#define HAVE_ISASCII 1" >>confdefs.h
+if test "x$ac_cv_func_isascii" = xyes
+then :
+ printf "%s\n" "#define HAVE_ISASCII 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" isascii.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS isascii.$ac_objext"
@@ -17131,12 +18588,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton"
-if test "x$ac_cv_func_inet_aton" = xyes; then :
- $as_echo "#define HAVE_INET_ATON 1" >>confdefs.h
+if test "x$ac_cv_func_inet_aton" = xyes
+then :
+ printf "%s\n" "#define HAVE_INET_ATON 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" inet_aton.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS inet_aton.$ac_objext"
@@ -17145,12 +18602,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
-if test "x$ac_cv_func_inet_pton" = xyes; then :
- $as_echo "#define HAVE_INET_PTON 1" >>confdefs.h
+if test "x$ac_cv_func_inet_pton" = xyes
+then :
+ printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" inet_pton.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS inet_pton.$ac_objext"
@@ -17159,12 +18616,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
-if test "x$ac_cv_func_inet_ntop" = xyes; then :
- $as_echo "#define HAVE_INET_NTOP 1" >>confdefs.h
+if test "x$ac_cv_func_inet_ntop" = xyes
+then :
+ printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" inet_ntop.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext"
@@ -17173,12 +18630,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
-if test "x$ac_cv_func_snprintf" = xyes; then :
- $as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h
+if test "x$ac_cv_func_snprintf" = xyes
+then :
+ printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" snprintf.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
@@ -17187,12 +18644,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
-if test "x$ac_cv_func_strlcpy" = xyes; then :
- $as_echo "#define HAVE_STRLCPY 1" >>confdefs.h
+if test "x$ac_cv_func_strlcpy" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" strlcpy.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strlcpy.$ac_objext"
@@ -17201,12 +18658,12 @@ esac
fi
-
ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
-if test "x$ac_cv_func_memmove" = xyes; then :
- $as_echo "#define HAVE_MEMMOVE 1" >>confdefs.h
+if test "x$ac_cv_func_memmove" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h
-else
+else $as_nop
case " $LIBOBJS " in
*" memmove.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS memmove.$ac_objext"
@@ -17216,55 +18673,75 @@ esac
fi
-ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
+ ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
+"
+if test "x$ac_cv_type_pid_t" = xyes
+then :
-else
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
-_ACEOF
+ #if defined _WIN64 && !defined __CYGWIN__
+ LLP64
+ #endif
-fi
+int
+main (void)
+{
-for ac_header in vfork.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
-if test "x$ac_cv_header_vfork_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_VFORK_H 1
-_ACEOF
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_pid_type='int'
+else $as_nop
+ ac_pid_type='__int64'
fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-done
+printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
-for ac_func in fork vfork
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
fi
+
+
+
+ac_func=
+for ac_item in $ac_func_c_list
+do
+ if test $ac_func; then
+ ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
+ if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
+ echo "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_func=
+ else
+ ac_func=$ac_item
+ fi
done
+
+
if test "x$ac_cv_func_fork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-$as_echo_n "checking for working fork... " >&6; }
-if ${ac_cv_func_fork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
+printf %s "checking for working fork... " >&6; }
+if test ${ac_cv_func_fork_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
ac_cv_func_fork_works=cross
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
-main ()
+main (void)
{
/* By Ruediger Kuhlmann. */
@@ -17274,9 +18751,10 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
ac_cv_func_fork_works=yes
-else
+else $as_nop
ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -17284,8 +18762,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-$as_echo "$ac_cv_func_fork_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
+printf "%s\n" "$ac_cv_func_fork_works" >&6; }
else
ac_cv_func_fork_works=$ac_cv_func_fork
@@ -17300,27 +18778,37 @@ if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_fork_works=yes
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
+printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-$as_echo_n "checking for working vfork... " >&6; }
-if ${ac_cv_func_vfork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
+printf %s "checking for working vfork... " >&6; }
+if test ${ac_cv_func_vfork_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
ac_cv_func_vfork_works=cross
-else
+else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
+#include <signal.h>
#include <sys/wait.h>
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
+
+static void
+do_nothing (int sig)
+{
+ (void) sig;
+}
+
/* On some sparc systems, changes by the child to local and incoming
argument registers are propagated back to the parent. The compiler
is told about this with #include <vfork.h>, but some compilers
@@ -17328,11 +18816,7 @@ $ac_includes_default
static variable whose address is put into a register that is
clobbered by the vfork. */
static void
-#ifdef __cplusplus
sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
{
static pid_t child;
if (!child) {
@@ -17350,13 +18834,18 @@ sparc_address_test (arg) int arg;
}
int
-main ()
+main (void)
{
pid_t parent = getpid ();
pid_t child;
sparc_address_test (0);
+ /* On Solaris 2.4, changes by the child to the signal handler
+ also munge signal handlers in the parent. To detect this,
+ start by putting the parent's handler in a known state. */
+ signal (SIGTERM, SIG_DFL);
+
child = vfork ();
if (child == 0) {
@@ -17378,6 +18867,10 @@ main ()
|| p != p5 || p != p6 || p != p7)
_exit(1);
+ /* Alter the child's signal handler. */
+ if (signal (SIGTERM, do_nothing) != SIG_DFL)
+ _exit(1);
+
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
from child file descriptors. If the child closes a descriptor
before it execs or exits, this munges the parent's descriptor
@@ -17393,6 +18886,9 @@ main ()
/* Was there some problem with vforking? */
child < 0
+ /* Did the child munge the parent's signal handler? */
+ || signal (SIGTERM, SIG_DFL) != SIG_DFL
+
/* Did the child fail? (This shouldn't happen.) */
|| status
@@ -17405,9 +18901,10 @@ main ()
}
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
ac_cv_func_vfork_works=yes
-else
+else $as_nop
ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -17415,42 +18912,123 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-$as_echo "$ac_cv_func_vfork_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
+printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=$ac_cv_func_vfork
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
+printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
fi
if test "x$ac_cv_func_vfork_works" = xyes; then
-$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h
+printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
else
-$as_echo "#define vfork fork" >>confdefs.h
+printf "%s\n" "#define vfork fork" >>confdefs.h
fi
if test "x$ac_cv_func_fork_works" = xyes; then
-$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
+printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
-for ac_func in endprotoent endservent sleep random fcntl strtoul bzero memset b32_ntop b32_pton
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compile of fork" >&5
+printf %s "checking compile of fork... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+
+int
+main (void)
+{
+
+ (void)fork();
+
+ ;
+ return 0;
+}
_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_FORK_AVAILABLE 1" >>confdefs.h
+
+
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ac_fn_c_check_func "$LINENO" "endprotoent" "ac_cv_func_endprotoent"
+if test "x$ac_cv_func_endprotoent" = xyes
+then :
+ printf "%s\n" "#define HAVE_ENDPROTOENT 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "endservent" "ac_cv_func_endservent"
+if test "x$ac_cv_func_endservent" = xyes
+then :
+ printf "%s\n" "#define HAVE_ENDSERVENT 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "sleep" "ac_cv_func_sleep"
+if test "x$ac_cv_func_sleep" = xyes
+then :
+ printf "%s\n" "#define HAVE_SLEEP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "random" "ac_cv_func_random"
+if test "x$ac_cv_func_random" = xyes
+then :
+ printf "%s\n" "#define HAVE_RANDOM 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl"
+if test "x$ac_cv_func_fcntl" = xyes
+then :
+ printf "%s\n" "#define HAVE_FCNTL 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRTOUL 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "bzero" "ac_cv_func_bzero"
+if test "x$ac_cv_func_bzero" = xyes
+then :
+ printf "%s\n" "#define HAVE_BZERO 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset"
+if test "x$ac_cv_func_memset" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMSET 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "b32_ntop" "ac_cv_func_b32_ntop"
+if test "x$ac_cv_func_b32_ntop" = xyes
+then :
+ printf "%s\n" "#define HAVE_B32_NTOP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "b32_pton" "ac_cv_func_b32_pton"
+if test "x$ac_cv_func_b32_pton" = xyes
+then :
+ printf "%s\n" "#define HAVE_B32_PTON 1" >>confdefs.h
fi
-done
if test "x$HAVE_B32_NTOP" = "xyes"; then
ldns_build_config_have_b32_ntop=1
@@ -17468,8 +19046,8 @@ else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
-$as_echo_n "checking for getaddrinfo... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
+printf %s "checking for getaddrinfo... " >&6; }
ac_cv_func_getaddrinfo=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17489,17 +19067,22 @@ int main() {
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_func_getaddrinfo="yes"
if test "$ac_cv_header_windows_h" = "yes"; then
-$as_echo "#define USE_WINSOCK 1" >>confdefs.h
+printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
USE_WINSOCK="1"
- LIBS="$LIBS -lws2_32"
+ if echo $LIBS | grep 'lws2_32' >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -lws2_32"
+ fi
fi
-else
+else $as_nop
ORIGLIBS="$LIBS"
LIBS="$LIBS -lws2_32"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -17510,7 +19093,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#endif
int
-main ()
+main (void)
{
(void)getaddrinfo(NULL, NULL, NULL, NULL);
@@ -17520,32 +19103,33 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
ac_cv_func_getaddrinfo="yes"
-$as_echo "#define USE_WINSOCK 1" >>confdefs.h
+printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
USE_WINSOCK="1"
-else
+else $as_nop
ac_cv_func_getaddrinfo="no"
LIBS="$ORIGLIBS"
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
-$as_echo "$ac_cv_func_getaddrinfo" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
+printf "%s\n" "$ac_cv_func_getaddrinfo" >&6; }
if test $ac_cv_func_getaddrinfo = yes; then
-$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h
+printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h
fi
@@ -17561,11 +19145,12 @@ if test "$USE_WINSOCK" = 1; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
set dummy ${ac_tool_prefix}windres; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_WINDRES+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_WINDRES+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$WINDRES"; then
ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test.
else
@@ -17573,11 +19158,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_WINDRES="${ac_tool_prefix}windres"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -17588,11 +19177,11 @@ fi
fi
WINDRES=$ac_cv_prog_WINDRES
if test -n "$WINDRES"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
-$as_echo "$WINDRES" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
+printf "%s\n" "$WINDRES" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
@@ -17601,11 +19190,12 @@ if test -z "$ac_cv_prog_WINDRES"; then
ac_ct_WINDRES=$WINDRES
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_WINDRES+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_WINDRES+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
if test -n "$ac_ct_WINDRES"; then
ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test.
else
@@ -17613,11 +19203,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_WINDRES="windres"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -17628,11 +19222,11 @@ fi
fi
ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES
if test -n "$ac_ct_WINDRES"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5
-$as_echo "$ac_ct_WINDRES" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5
+printf "%s\n" "$ac_ct_WINDRES" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_WINDRES" = x; then
@@ -17640,8 +19234,8 @@ fi
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
WINDRES=$ac_ct_WINDRES
@@ -17653,8 +19247,8 @@ fi
fi
# check ioctlsocket
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ioctlsocket" >&5
-$as_echo_n "checking for ioctlsocket... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctlsocket" >&5
+printf %s "checking for ioctlsocket... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17663,7 +19257,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#endif
int
-main ()
+main (void)
{
(void)ioctlsocket(0, 0, NULL);
@@ -17672,30 +19266,32 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
-$as_echo "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
+printf "%s\n" "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
#AC_SEARCH_LIBS(RSA_new, [crypto])
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
-$as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
-if ${ac_cv_c_format_attribute+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
+printf %s "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
+if test ${ac_cv_c_format_attribute+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_format_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17704,7 +19300,7 @@ void f (char *format, ...) __attribute__ ((format (printf, 1, 2)));
void (*pf) (char *format, ...) __attribute__ ((format (printf, 1, 2)));
int
-main ()
+main (void)
{
f ("%s", "str");
@@ -17713,30 +19309,32 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_format_attribute="yes"
-else
+else $as_nop
ac_cv_c_format_attribute="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_format_attribute" >&5
-$as_echo "$ac_cv_c_format_attribute" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_format_attribute" >&5
+printf "%s\n" "$ac_cv_c_format_attribute" >&6; }
if test $ac_cv_c_format_attribute = yes; then
-$as_echo "#define HAVE_ATTR_FORMAT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_ATTR_FORMAT 1" >>confdefs.h
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
-$as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
-if ${ac_cv_c_unused_attribute+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
+printf %s "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
+if test ${ac_cv_c_unused_attribute+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
ac_cv_c_unused_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -17744,7 +19342,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
void f (char *u __attribute__((unused)));
int
-main ()
+main (void)
{
f ("x");
@@ -17753,53 +19351,76 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
ac_cv_c_unused_attribute="yes"
-else
+else $as_nop
ac_cv_c_unused_attribute="no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_attribute" >&5
-$as_echo "$ac_cv_c_unused_attribute" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_attribute" >&5
+printf "%s\n" "$ac_cv_c_unused_attribute" >&6; }
if test $ac_cv_c_unused_attribute = yes; then
-$as_echo "#define HAVE_ATTR_UNUSED 1" >>confdefs.h
+printf "%s\n" "#define HAVE_ATTR_UNUSED 1" >>confdefs.h
fi
-# check OSX deployment target, if needed
-if echo $build_os | grep darwin > /dev/null; then
- sdk_p=`xcode-select -print-path`;
- sdk_v="$( /usr/bin/xcrun --show-sdk-version )";
- case $sdk_v in
- 10.9|10.8) sdk_c="10.7";;
- 10.11|10.10|*) sdk_c="10.10";;
- esac
- export MACOSX_DEPLOYMENT_TARGET="${sdk_c}";
- export CFLAGS="$CFLAGS -mmacosx-version-min=${sdk_c} -isysroot ${sdk_p}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${sdk_v}.sdk";
+
+# Check whether --with-xcode-sdk was given.
+if test ${with_xcode_sdk+y}
+then :
+ withval=$with_xcode_sdk;
+else $as_nop
+ with_xcode_sdk="yes"
+fi
+
+if test "x_$with_xcode_sdk" != "x_no" ; then
+ # check OSX deployment target, if needed
+ if echo $target_os | grep darwin > /dev/null; then
+ sdk_p=`xcode-select -print-path`;
+ if test "x_$with_xcode_sdk" = "x_yes" ; then
+ sdk_v="$( /usr/bin/xcrun --show-sdk-version 2>/dev/null )"
+ else
+ sdk_v="$with_xcode_sdk"
+ fi
+ # xcrun only got that option in 10.7
+ if test -z "$sdk_v" ; then
+ sdk_c="10.6"
+ sdk_v="10.6"
+ fi
+ SYSROOT="$( find ${sdk_p} -name MacOSX${sdk_v}.sdk )"
+ case $sdk_v in
+ 10.9|10.8) sdk_c="10.7";;
+ 10.11|10.10|*) sdk_c="10.10";;
+ esac
+ export MACOSX_DEPLOYMENT_TARGET="${sdk_c}";
+ export CFLAGS="$CFLAGS -mmacosx-version-min=${sdk_c} -isysroot ${SYSROOT}"
+ fi
fi
-$as_echo "#define SYSCONFDIR sysconfdir" >>confdefs.h
+printf "%s\n" "#define SYSCONFDIR sysconfdir" >>confdefs.h
# Check whether --with-trust-anchor was given.
-if test "${with_trust_anchor+set}" = set; then :
+if test ${with_trust_anchor+y}
+then :
withval=$with_trust_anchor;
LDNS_TRUST_ANCHOR_FILE="$withval"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Default trust anchor: $withval" >&5
-$as_echo "$as_me: Default trust anchor: $withval" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Default trust anchor: $withval" >&5
+printf "%s\n" "$as_me: Default trust anchor: $withval" >&6;}
-else
+else $as_nop
LDNS_TRUST_ANCHOR_FILE="\$(sysconfdir)/unbound/root.key"
@@ -17809,25 +19430,24 @@ fi
# Check whether --with-ca-file was given.
-if test "${with_ca_file+set}" = set; then :
+if test ${with_ca_file+y}
+then :
withval=$with_ca_file;
-$as_echo "#define HAVE_DANE_CA_FILE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_DANE_CA_FILE 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define LDNS_DANE_CA_FILE "$withval"
-_ACEOF
+printf "%s\n" "#define LDNS_DANE_CA_FILE \"$withval\"" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using CAfile: $withval" >&5
-$as_echo "$as_me: Using CAfile: $withval" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using CAfile: $withval" >&5
+printf "%s\n" "$as_me: Using CAfile: $withval" >&6;}
DEFAULT_CAFILE="Default is $withval"
-else
+else $as_nop
-$as_echo "#define HAVE_DANE_CA_FILE 0" >>confdefs.h
+printf "%s\n" "#define HAVE_DANE_CA_FILE 0" >>confdefs.h
@@ -17836,25 +19456,24 @@ fi
# Check whether --with-ca-path was given.
-if test "${with_ca_path+set}" = set; then :
+if test ${with_ca_path+y}
+then :
withval=$with_ca_path;
-$as_echo "#define HAVE_DANE_CA_PATH 1" >>confdefs.h
+printf "%s\n" "#define HAVE_DANE_CA_PATH 1" >>confdefs.h
-cat >>confdefs.h <<_ACEOF
-#define LDNS_DANE_CA_PATH "$withval"
-_ACEOF
+printf "%s\n" "#define LDNS_DANE_CA_PATH \"$withval\"" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using CApath: $withval" >&5
-$as_echo "$as_me: Using CApath: $withval" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using CApath: $withval" >&5
+printf "%s\n" "$as_me: Using CApath: $withval" >&6;}
DEFAULT_CAPATH="Default is $withval"
-else
+else $as_nop
-$as_echo "#define HAVE_DANE_CA_PATH 0" >>confdefs.h
+printf "%s\n" "#define HAVE_DANE_CA_PATH 0" >>confdefs.h
@@ -17887,7 +19506,7 @@ else
fi
-CONFIG_FILES="Makefile ldns/common.h ldns/net.h ldns/util.h packaging/libldns.pc packaging/ldns-config"
+CONFIG_FILES="Makefile libdns.doxygen ldns/common.h ldns/net.h ldns/util.h packaging/libldns.pc packaging/ldns-config"
ac_config_files="$ac_config_files $CONFIG_FILES"
@@ -17921,8 +19540,8 @@ _ACEOF
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -17952,15 +19571,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
/^ac_cv_env_/b end
t clear
:clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
@@ -17974,8 +19593,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;}
fi
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
@@ -17992,7 +19611,7 @@ U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -18009,8 +19628,8 @@ LTLIBOBJS=$ac_ltlibobjs
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
@@ -18033,14 +19652,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else
+else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
@@ -18050,46 +19671,46 @@ esac
fi
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -18098,13 +19719,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
fi
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
@@ -18113,8 +19727,12 @@ case $0 in #((
for as_dir in $PATH
do
IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
@@ -18126,30 +19744,10 @@ if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
@@ -18162,13 +19760,14 @@ as_fn_error ()
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $2" >&2
+ printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -18195,18 +19794,20 @@ as_fn_unset ()
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
+
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
-else
+else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
@@ -18218,12 +19819,13 @@ fi # as_fn_append
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
-else
+else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
@@ -18254,7 +19856,7 @@ as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -18276,6 +19878,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
@@ -18289,6 +19895,12 @@ case `echo -n x` in #(((((
ECHO_N='-n';;
esac
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -18330,7 +19942,7 @@ as_fn_mkdir_p ()
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -18339,7 +19951,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -18401,8 +20013,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ldns $as_me 1.7.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+This file was extended by ldns $as_me 1.8.3, which was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -18464,14 +20076,16 @@ $config_commands
Report bugs to <libdns@nlnetlabs.nl>."
_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-ldns config.status 1.7.0
-configured by $0, generated by GNU Autoconf 2.69,
+ldns config.status 1.8.3
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -18509,15 +20123,15 @@ do
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
+ printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
+ printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -18525,7 +20139,7 @@ do
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
@@ -18534,7 +20148,7 @@ do
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
+ printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
@@ -18562,7 +20176,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
@@ -18576,7 +20190,7 @@ exec 5>>config.log
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
- $as_echo "$ac_log"
+ printf "%s\n" "$ac_log"
} >&5
_ACEOF
@@ -18891,9 +20505,9 @@ done
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+ test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+ test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+ test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -19229,7 +20843,7 @@ do
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
@@ -19237,17 +20851,17 @@ do
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
+ ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
@@ -19264,7 +20878,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -19288,9 +20902,9 @@ $as_echo X"$ac_file" |
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -19343,8 +20957,8 @@ ac_sed_dataroot='
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
@@ -19386,9 +21000,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
@@ -19404,27 +21018,27 @@ which seems to be undefined. Please make sure it is defined" >&2;}
#
if test x"$ac_file" != x-; then
{
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
- $as_echo "/* $configure_input */" \
+ printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
+ :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
esac
@@ -19957,6 +21571,7 @@ _LT_EOF
esac
+
ltmain=$ac_aux_dir/ltmain.sh
@@ -20013,8 +21628,8 @@ if test "$no_create" != yes; then
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
@@ -20027,4 +21642,3 @@ done
-
diff --git a/configure.ac b/configure.ac
index b7c6c811be40..20b7aba19e86 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,8 +5,8 @@ sinclude(acx_nlnetlabs.m4)
# must be numbers. ac_defun because of later processing.
m4_define([VERSION_MAJOR],[1])
-m4_define([VERSION_MINOR],[7])
-m4_define([VERSION_MICRO],[0])
+m4_define([VERSION_MINOR],[8])
+m4_define([VERSION_MICRO],[3])
AC_INIT(ldns, m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]), libdns@nlnetlabs.nl, libdns)
AC_CONFIG_SRCDIR([packet.c])
# needed to build correct soname
@@ -26,9 +26,15 @@ AC_SUBST(LDNS_VERSION_MICRO, [VERSION_MICRO])
# set age to 0
#
# ldns-1.6.17 and before had a .so with version same as VERSION_INFO
-# ldns-1.7.0 will have libversion 2:0:0
+# ldns-1.7.0 had libversion 2:0:0
+# ldns-1.7.1 had libversion 3:0:0 (though it should have had 3:0:1)
+# ldns-1.8.0 had libversion 4:0:2 (though it should have had 4:0:1)
+# ldns-1.8.1 had libversion 5:0:2
+# ldns-1.8.1 had libversion 6:0:3
+# ldns-1.8.2 had libversion 7:0:4
+# ldns-1.8.3 has libversion 8:0:5
#
-AC_SUBST(VERSION_INFO, [2:0:0])
+AC_SUBST(VERSION_INFO, [8:0:5])
AC_AIX
if test "$ac_cv_header_minix_config_h" = "yes"; then
@@ -49,7 +55,7 @@ AC_PROG_MAKE_SET
# Extra (sp)lint flags for NetBSD
AC_CANONICAL_HOST
case "$host_os" in
- netbsd*) LINTFLAGS="'-D__RENAME(x)=' -D_NETINET_IN_H_ $LINTFLAGS"
+ netbsd*) LINTFLAGS="'-D__RENAME(x)=' -D_NETINET_IN_H_ $LINTFLAGS"
;;
*) LINTFLAGS="$LINTFLAGS"
;;
@@ -95,6 +101,7 @@ ACX_CHECK_COMPILER_FLAG(Wstrict-prototypes, [CFLAGS="-Wstrict-prototypes $CFLAGS
#ACX_CHECK_COMPILER_FLAG(Wshadow, [CFLAGS="-Wshadow $CFLAGS"])
ACX_CHECK_COMPILER_FLAG(Wunused-function, [CFLAGS="-Wunused-function $CFLAGS"])
ACX_CHECK_COMPILER_FLAG(Wmissing-prototypes, [CFLAGS="-Wmissing-prototypes $CFLAGS"])
+ACX_CHECK_COMPILER_FLAG(fno-strict-aliasing, [CFLAGS="-fno-strict-aliasing $CFLAGS"])
AC_CHECK_HEADERS([getopt.h time.h],,, [AC_INCLUDES_DEFAULT])
@@ -102,6 +109,9 @@ AC_CHECK_HEADERS([getopt.h time.h],,, [AC_INCLUDES_DEFAULT])
AC_CHECK_HEADERS([winsock2.h ws2tcpip.h],,, [AC_INCLUDES_DEFAULT])
# end mingw32 tests
+# Check for Apple header. This uncovers TARGET_OS_IPHONE, TARGET_OS_TV or TARGET_OS_WATCH
+AC_CHECK_HEADERS([TargetConditionals.h])
+
ACX_DETERMINE_EXT_FLAGS_UNBOUND
AC_C_INLINE
@@ -118,12 +128,32 @@ AC_CHECK_TYPE(uint64_t, unsigned long long)
AC_CHECK_PROG(doxygen, doxygen, doxygen)
# check to see if libraries are needed for these functions.
-AC_SEARCH_LIBS([socket], [socket])
-AC_SEARCH_LIBS([inet_pton], [nsl])
+AC_CHECK_FUNC([socket],
+ [],
+ [AC_SEARCH_LIBS([socket], [socket])
+])
+# modern Linux provides inet_ntop in -lsocket.
+# modern OS X provides inet_ntop in -lc.
+# modern Solaris provides inet_ntop in -lsocket -lnsl.
+# older Solaris provides inet_ntop in -lresolv.
+AC_CHECK_FUNC([inet_ntop],
+ [],
+ [AC_SEARCH_LIBS([inet_ntop], [socket c nsl resolv], [ac_cv_func_inet_ntop=yes])
+])
-AC_ARG_WITH(drill, AC_HELP_STRING([--with-drill],
- [Also build drill.]),
+# modern Linux provides inet_pton in -lsocket.
+# modern OS X provides inet_pton in -lc.
+# modern Solaris provides inet_pton in -lsocket -lnsl.
+# older Solaris provides inet_pton in -lresolv.
+AC_CHECK_FUNC([inet_pton],
+ [],
+ [AC_SEARCH_LIBS([inet_pton], [socket c nsl resolv], [ac_cv_func_inet_pton=yes])
+])
+
+
+AC_ARG_WITH(drill, AC_HELP_STRING([--with-drill],
+ [Also build drill.]),
[],[with_drill="no"])
if test x_$with_drill != x_no ; then
AC_SUBST(DRILL,[drill])
@@ -135,7 +165,7 @@ if test x_$with_drill != x_no ; then
AC_MSG_ERROR([
A config.h was detected in the drill subdirectory.
This does not work with the --with-drill option.
-Please remove the config.h from the drill subdirectory
+Please remove the config.h from the drill subdirectory
or do not use the --with-drill option.])
fi
else
@@ -147,8 +177,8 @@ else
fi
-AC_ARG_WITH(examples, AC_HELP_STRING([--with-examples],
- [Also build examples.]),
+AC_ARG_WITH(examples, AC_HELP_STRING([--with-examples],
+ [Also build examples.]),
[],[with_examples="no"])
if test x_$with_examples != x_no ; then
AC_SUBST(EXAMPLES,[examples])
@@ -160,7 +190,7 @@ if test x_$with_examples != x_no ; then
AC_MSG_ERROR([
A config.h was detected in the examples subdirectory.
This does not work with the --with-examples option.
-Please remove the config.h from the examples subdirectory
+Please remove the config.h from the examples subdirectory
or do not use the --with-examples option.])
fi
else
@@ -191,7 +221,7 @@ AC_ARG_ENABLE(stderr-msgs, AC_HELP_STRING([--enable-stderr-msgs], [Enable printi
case "$enable_stderr_msgs" in
no) dnl default
;;
- *)
+ *)
AC_DEFINE_UNQUOTED([STDERR_MSGS], [1], [Define this to enable messages to stderr.])
;;
esac
@@ -207,8 +237,8 @@ AX_CONFIG_FEATURE(
PYTHON_X_CFLAGS=""
ldns_with_pyldns=no
ldns_with_pyldnsx=no
-AC_ARG_WITH(pyldns, AC_HELP_STRING([--with-pyldns],
- [generate python library, or --without-pyldns to disable Python support.]),
+AC_ARG_WITH(pyldns, AC_HELP_STRING([--with-pyldns],
+ [generate python library, or --without-pyldns to disable Python support.]),
[],[ withval="no" ])
ldns_have_python=no
if test x_$withval != x_no; then
@@ -263,8 +293,8 @@ fi
AC_SUBST(PYTHON_X_CFLAGS)
# Check for pyldnsx
-AC_ARG_WITH(pyldnsx, AC_HELP_STRING([--without-pyldnsx],
- [Do not install the ldnsx python module, or --with-pyldnsx to install it.]),
+AC_ARG_WITH(pyldnsx, AC_HELP_STRING([--without-pyldnsx],
+ [Do not install the ldnsx python module, or --with-pyldnsx to install it.]),
[],[ withval="with_pyldns" ])
if test x_$withval != x_no; then
if test x_$ldns_with_pyldns != x_no; then
@@ -294,8 +324,8 @@ fi
# check for perl
ldns_with_p5_dns_ldns=no
-AC_ARG_WITH(p5-dns-ldns, AC_HELP_STRING([--with-p5-dns-ldns],
- [generate DNS::LDNS perl bindings]),
+AC_ARG_WITH(p5-dns-ldns, AC_HELP_STRING([--with-p5-dns-ldns],
+ [generate DNS::LDNS perl bindings]),
[],[ withval="no" ])
ldns_have_perl=no
if test x_$withval != x_no; then
@@ -331,7 +361,29 @@ if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/
else
AC_MSG_RESULT([no])
fi
-AC_CHECK_FUNCS([EVP_sha256 EVP_sha384 EVP_sha512 ENGINE_load_cryptodev EVP_PKEY_keygen ECDSA_SIG_get0 EVP_MD_CTX_new EVP_PKEY_base_id DSA_SIG_set0 DSA_SIG_get0 EVP_dss1 DSA_get0_pqg DSA_get0_key])
+AC_CHECK_HEADERS([openssl/ssl.h openssl/evp.h openssl/engine.h openssl/conf.h])
+AC_CHECK_FUNCS([EVP_sha256 EVP_sha384 EVP_sha512 EVP_PKEY_keygen ECDSA_SIG_get0 EVP_MD_CTX_new DSA_SIG_set0 DSA_SIG_get0 EVP_dss1 DSA_get0_pqg DSA_get0_key EVP_cleanup ENGINE_cleanup ENGINE_free CRYPTO_cleanup_all_ex_data ERR_free_strings CONF_modules_unload OPENSSL_init_ssl OPENSSL_init_crypto ERR_load_crypto_strings CRYPTO_memcmp EVP_PKEY_get_base_id])
+AC_CHECK_DECLS([EVP_PKEY_base_id], [
+ AC_DEFINE_UNQUOTED([HAVE_EVP_PKEY_BASE_ID], [1], [Define to 1 if you have the EVP_PKEY_base_id function or macro.])
+], [], [AC_INCLUDES_DEFAULT
+#include <openssl/evp.h>
+])
+AC_MSG_CHECKING([Checking for OpenSSL >= 3.0.0])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+#include <openssl/ssl.h>
+#if OPENSSL_VERSION_MAJOR >= 3
+#define SOMETHING
+#else
+This fails compiling.
+So either no OpenSSL at all (the include already failed), or the version < 3.0.0
+#endif
+], [
+])], [
+ AC_MSG_RESULT(yes)
+ CFLAGS="-DOPENSSL_API_COMPAT=10100 $CFLAGS"
+], [ AC_MSG_RESULT(no)
+])
+
# for macosx, see if glibtool exists and use that
# BSD's need to know the version...
@@ -354,21 +406,33 @@ case "$enable_sha2" in
;;
esac
-# check wether gost also works
+# check whether gost also works
AC_DEFUN([AC_CHECK_GOST_WORKS],
[AC_REQUIRE([AC_PROG_CC])
AC_MSG_CHECKING([if GOST works])
if test c${cross_compiling} = cno; then
BAKCFLAGS="$CFLAGS"
if test -n "$ssldir"; then
+ if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
+ CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib64"
+ else
CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib"
+ fi
fi
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <string.h>
+#ifdef HAVE_OPENSSL_SSL_H
#include <openssl/ssl.h>
+#endif
+#ifdef HAVE_OPENSSL_EVP_H
#include <openssl/evp.h>
+#endif
+#ifdef HAVE_OPENSSL_ENGINE_H
#include <openssl/engine.h>
+#endif
+#ifdef HAVE_OPENSSL_CONF_H
#include <openssl/conf.h>
+#endif
/* routine to load gost (from sldns) */
int load_gost_id(void)
{
@@ -413,7 +477,7 @@ int load_gost_id(void)
EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
return gost_id;
}
-int main(void) {
+int main(void) {
EVP_MD_CTX* ctx;
const EVP_MD* md;
unsigned char digest[64]; /* its a 256-bit digest, so uses 32 bytes */
@@ -463,7 +527,7 @@ case "$enable_gost" in
AC_CHECK_FUNC(EVP_PKEY_set_type_str, [],[AC_MSG_ERROR([OpenSSL >= 1.0.0 is needed for GOST support or rerun with --disable-gost])])
AC_CHECK_FUNC(EC_KEY_new, [], [AC_MSG_ERROR([No ECC functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-gost])])
AC_CHECK_GOST_WORKS
- AC_ARG_ENABLE(gost-anyway, AC_HELP_STRING([--enable-gost-anyway], [Enable GOST even whithout a GOST engine installed]))
+ AC_ARG_ENABLE(gost-anyway, AC_HELP_STRING([--enable-gost-anyway], [Enable GOST even without a GOST engine installed]))
if test "$ac_cv_c_gost_works" != "no" -o "$enable_gost_anyway" = "yes"; then
if test "$ac_cv_c_gost_works" = "no"; then
AC_MSG_RESULT([no, but compiling with GOST support anyway])
@@ -502,43 +566,50 @@ esac
AC_ARG_ENABLE(dsa, AC_HELP_STRING([--disable-dsa], [Disable DSA support]))
case "$enable_dsa" in
no)
+ AC_SUBST(ldns_build_config_use_dsa, 0)
;;
*) dnl default
# detect if DSA is supported, and turn it off if not.
AC_CHECK_FUNC(DSA_SIG_new, [
AC_DEFINE_UNQUOTED([USE_DSA], [1], [Define this to enable DSA support.])
+ AC_SUBST(ldns_build_config_use_dsa, 1)
], [if test "x$enable_dsa" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support DSA and you used --enable-dsa.])
- fi ])
+ fi
+ AC_SUBST(ldns_build_config_use_dsa, 0)])
;;
esac
-AC_ARG_ENABLE(ed25519, AC_HELP_STRING([--enable-ed25519], [Enable ED25519 support (experimental)]))
+AC_ARG_ENABLE(ed25519, AC_HELP_STRING([--disable-ed25519], [Disable (experimental) ED25519 support. Default is detect]))
case "$enable_ed25519" in
- yes)
- if test "x$HAVE_SSL" != "xyes"; then
- AC_MSG_ERROR([ED25519 enabled, but no SSL support])
- fi
- AC_CHECK_DECLS([NID_X25519], [], [AC_MSG_ERROR([OpenSSL does not support the EDDSA curve: please upgrade OpenSSL or rerun with --disable-ed25519])], [AC_INCLUDES_DEFAULT
+ no)
+ AC_SUBST(ldns_build_config_use_ed25519, 0)
+ ;;
+ *) dnl default
+ AC_CHECK_DECLS([NID_ED25519], [
+ AC_DEFINE_UNQUOTED([USE_ED25519], [1], [Define this to enable ED25519 support.])
+ AC_SUBST(ldns_build_config_use_ed25519, 1)
+ ], [if test "x$enable_ed25519" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support ED25519 and you used --enable-ed25519.])
+ fi
+ AC_SUBST(ldns_build_config_use_ed25519, 0)], [AC_INCLUDES_DEFAULT
#include <openssl/evp.h>
])
- AC_DEFINE_UNQUOTED([USE_ED25519], [1], [Define this to enable ED25519 support.])
- ;;
- *|no) dnl default
;;
esac
-AC_ARG_ENABLE(ed448, AC_HELP_STRING([--enable-ed448], [Enable ED448 support (experimental)]))
+AC_ARG_ENABLE(ed448, AC_HELP_STRING([--disable-ed448], [Disable (experimental) ED448 support. Default is detect]))
case "$enable_ed448" in
- yes)
- if test "x$HAVE_SSL" != "xyes"; then
- AC_MSG_ERROR([ED448 enabled, but no SSL support])
- fi
- AC_CHECK_DECLS([NID_X448], [], [AC_MSG_ERROR([OpenSSL does not support the EDDSA curve: please upgrade OpenSSL or rerun with --disable-ed448])], [AC_INCLUDES_DEFAULT
+ no)
+ AC_SUBST(ldns_build_config_use_ed448, 0)
+ ;;
+ *) dnl default
+ AC_CHECK_DECLS([NID_ED448], [
+ AC_DEFINE_UNQUOTED([USE_ED448], [1], [Define this to enable ED448 support.])
+ AC_SUBST(ldns_build_config_use_ed448, 1)
+ ], [if test "x$enable_ed448" = "xyes"; then AC_MSG_ERROR([OpenSSL does not support ED448 and you used --enable-ed448.])
+ fi
+ AC_SUBST(ldns_build_config_use_ed448, 0)], [AC_INCLUDES_DEFAULT
#include <openssl/evp.h>
])
- AC_DEFINE_UNQUOTED([USE_ED448], [1], [Define this to enable ED448 support.])
- ;;
- *|no) dnl default
;;
esac
@@ -587,9 +658,11 @@ case "$enable_dane" in
AC_SUBST(ldns_build_config_use_dane_ta_usage, 0)
;;
*) dnl default
- LIBS="-lssl $LIBS"
+ danetmpLIBS="$LIBS"
+ LIBS="-lssl -lcrypto $LIBS"
AC_CHECK_FUNC(SSL_get0_dane, [], [AC_MSG_ERROR([OpenSSL does not support offline DANE verification (Needed for the DANE-TA usage type). Please upgrade OpenSSL to version >= 1.1.0 or rerun with --disable-dane-verify or --disable-dane-ta-usage])])
- LIBSSL_LIBS="$LIBSSL_LIBS -lssl"
+ LIBSSL_LIBS="-lssl $LIBSSL_LIBS"
+ LIBS="$danetmpLIBS"
AC_SUBST(ldns_build_config_use_dane_ta_usage, 1)
AC_DEFINE_UNQUOTED([USE_DANE_TA_USAGE], [1], [Define this to enable DANE-TA usage type support.])
;;
@@ -638,12 +711,43 @@ case "$enable_rrtype_avc" in
no|*)
;;
esac
+AC_ARG_ENABLE(rrtype-doa, AC_HELP_STRING([--enable-rrtype-doa], [Enable draft RR type DOA.]))
+case "$enable_rrtype_doa" in
+ yes)
+ AC_DEFINE_UNQUOTED([RRTYPE_DOA], [], [Define this to enable RR type DOA.])
+ ;;
+ no|*)
+ ;;
+esac
+AC_ARG_ENABLE(rrtype-amtrelay, AC_HELP_STRING([--enable-rrtype-amtrelay], [Enable draft RR type AMTRELAY.]))
+case "$enable_rrtype_amtrelay" in
+ yes)
+ AC_DEFINE_UNQUOTED([RRTYPE_AMTRELAY], [], [Define this to enable RR type AMTRELAY.])
+ ;;
+ no|*)
+ ;;
+esac
+AC_ARG_ENABLE(rrtype-svcb-https, AC_HELP_STRING([--disable-rrtype-svcb-https], [Disable RR types SVCB and HTTPS.]))
+case "$enable_rrtype_svcb_https" in
+ no)
+ ;;
+ yes|*)
+ AC_DEFINE_UNQUOTED([RRTYPE_SVCB_HTTPS], [], [Define this to enable RR types SVCB and HTTPS.])
+ ;;
+esac
+
+
AC_SUBST(LIBSSL_CPPFLAGS)
AC_SUBST(LIBSSL_LDFLAGS)
AC_SUBST(LIBSSL_LIBS)
if test "x$HAVE_SSL" = "xyes"; then
-AC_SUBST(LIBSSL_SSL_LIBS, ["-lssl $LIBSSL_LIBS"])
+ if echo "$LIBSSL_LIBS" | grep -- "-lssl" >/dev/null 2>&1; then
+ LIBSSL_SSL_LIBS="$LIBSSL_LIBS"
+ else
+ LIBSSL_SSL_LIBS="-lssl $LIBSSL_LIBS"
+ fi
+ AC_SUBST(LIBSSL_SSL_LIBS, "$LIBSSL_SSL_LIBS")
fi
CPPFLAGS=$tmp_CPPFLAGS
LDFLAGS=$tmp_LDFLAGS
@@ -755,7 +859,7 @@ AC_CHECK_LIB(pcap, pcap_open_offline, [
]
)
AC_CHECK_HEADERS([netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/igmp.h netinet/if_ether.h netinet/ip6.h net/ethernet.h netinet/ip_compat.h],,, [
-AC_INCLUDES_DEFAULT
+AC_INCLUDES_DEFAULT
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
@@ -796,8 +900,9 @@ AC_CHECK_TYPE(in_port_t, [], [AC_DEFINE([in_port_t], [uint16_t], [in_port_t])],
#endif])
ACX_CHECK_SS_FAMILY
-AC_FUNC_MALLOC
-AC_FUNC_REALLOC
+# AC_FUNC_MALLOC suffers false failures and causes Asan failures.
+# AC_FUNC_MALLOC
+# AC_FUNC_REALLOC
AC_REPLACE_FUNCS(b64_pton)
AC_REPLACE_FUNCS(b64_ntop)
@@ -815,6 +920,16 @@ AC_REPLACE_FUNCS(snprintf)
AC_REPLACE_FUNCS(strlcpy)
AC_REPLACE_FUNCS(memmove)
AC_FUNC_FORK
+AC_MSG_CHECKING([compile of fork])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+#include <unistd.h>
+], [
+ (void)fork();
+])], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_FORK_AVAILABLE], 1, [if fork is available for compile])
+], [ AC_MSG_RESULT(no)
+])
AC_CHECK_FUNCS([endprotoent endservent sleep random fcntl strtoul bzero memset b32_ntop b32_pton])
if test "x$HAVE_B32_NTOP" = "xyes"; then
AC_SUBST(ldns_build_config_have_b32_ntop, 1)
@@ -841,16 +956,31 @@ ACX_FUNC_IOCTLSOCKET
ACX_CHECK_FORMAT_ATTRIBUTE
ACX_CHECK_UNUSED_ATTRIBUTE
-# check OSX deployment target, if needed
-if echo $build_os | grep darwin > /dev/null; then
- sdk_p=`xcode-select -print-path`;
- sdk_v="$( /usr/bin/xcrun --show-sdk-version )";
- case $sdk_v in
- 10.9|10.8) sdk_c="10.7";;
- 10.11|10.10|*) sdk_c="10.10";;
- esac
- export MACOSX_DEPLOYMENT_TARGET="${sdk_c}";
- export CFLAGS="$CFLAGS -mmacosx-version-min=${sdk_c} -isysroot ${sdk_p}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${sdk_v}.sdk";
+AC_ARG_WITH(xcode-sdk, AC_HELP_STRING([--with-xcode-sdk],
+ [Set xcode SDK version. Default is autodetect]),
+ [],[with_xcode_sdk="yes"])
+if test "x_$with_xcode_sdk" != "x_no" ; then
+ # check OSX deployment target, if needed
+ if echo $target_os | grep darwin > /dev/null; then
+ sdk_p=`xcode-select -print-path`;
+ if test "x_$with_xcode_sdk" = "x_yes" ; then
+ sdk_v="$( /usr/bin/xcrun --show-sdk-version 2>/dev/null )"
+ else
+ sdk_v="$with_xcode_sdk"
+ fi
+ # xcrun only got that option in 10.7
+ if test -z "$sdk_v" ; then
+ sdk_c="10.6"
+ sdk_v="10.6"
+ fi
+ SYSROOT="$( find ${sdk_p} -name MacOSX${sdk_v}.sdk )"
+ case $sdk_v in
+ 10.9|10.8) sdk_c="10.7";;
+ 10.11|10.10|*) sdk_c="10.10";;
+ esac
+ export MACOSX_DEPLOYMENT_TARGET="${sdk_c}";
+ export CFLAGS="$CFLAGS -mmacosx-version-min=${sdk_c} -isysroot ${SYSROOT}"
+ fi
fi
AC_DEFINE([SYSCONFDIR], [sysconfdir], [System configuration dir])
@@ -1016,10 +1146,10 @@ size_t strlcpy(char *dst, const char *src, size_t siz);
#ifdef USE_WINSOCK
#define SOCK_INVALID INVALID_SOCKET
-#define close_socket(_s) do { if (_s > SOCK_INVALID) {closesocket(_s); _s = SOCK_INVALID;} } while(0)
+#define close_socket(_s) do { if (_s != SOCK_INVALID) {closesocket(_s); _s = -1;} } while(0)
#else
#define SOCK_INVALID -1
-#define close_socket(_s) do { if (_s > SOCK_INVALID) {close(_s); _s = SOCK_INVALID;} } while(0)
+#define close_socket(_s) do { if (_s != SOCK_INVALID) {close(_s); _s = -1;} } while(0)
#endif
#ifdef __cplusplus
@@ -1049,7 +1179,7 @@ else
AC_SUBST(ldns_build_config_have_attr_unused, 0)
fi
-CONFIG_FILES="Makefile ldns/common.h ldns/net.h ldns/util.h packaging/libldns.pc packaging/ldns-config"
+CONFIG_FILES="Makefile libdns.doxygen ldns/common.h ldns/net.h ldns/util.h packaging/libldns.pc packaging/ldns-config"
AC_SUBST(CONFIG_FILES)
AC_CONFIG_FILES([$CONFIG_FILES])
@@ -1058,5 +1188,3 @@ AC_OUTPUT
COPY_HEADER_FILES(ldns/, ldns/)
dnl AC_CONFIG_SUBDIRS([drill])
-
-
diff --git a/contrib/DNS-LDNS/Changes b/contrib/DNS-LDNS/Changes
index b560eda9efc4..fbdcb2e47f93 100644
--- a/contrib/DNS-LDNS/Changes
+++ b/contrib/DNS-LDNS/Changes
@@ -43,3 +43,11 @@ Revision history for Perl extension DNS::LDNS.
0.52 Tue May 5 09:13:00 2015
- Fixed typo in META.yml
+
+0.60 Thu Dec 29 11:15:00 2016
+ - Compatibility with ldns 1.7
+ - Dist::zilla build management
+
+0.61 Fri Dec 30 14:32:00 2016
+ - Bugfixes for ldns 1.7 compatibility
+ - Compatibility with perl 5.25
diff --git a/contrib/DNS-LDNS/LICENSE b/contrib/DNS-LDNS/LICENSE
new file mode 100644
index 000000000000..35a251387ec5
--- /dev/null
+++ b/contrib/DNS-LDNS/LICENSE
@@ -0,0 +1,4 @@
+This software is copyright (c) 2013 by UNINETT Norid AS. No
+license is granted to other entities.
+
+All rights reserved.
diff --git a/contrib/DNS-LDNS/MANIFEST b/contrib/DNS-LDNS/MANIFEST
index decbaa0d6c07..7cfbae91a46c 100644
--- a/contrib/DNS-LDNS/MANIFEST
+++ b/contrib/DNS-LDNS/MANIFEST
@@ -1,8 +1,6 @@
Changes
-const-c.inc
-const-xs.inc
-fallback/const-c.inc
-fallback/const-xs.inc
+constants.PL
+dist.ini
LDNS.xs
lib/DNS/LDNS.pm
lib/DNS/LDNS/DNSSecDataChain.pm
@@ -22,7 +20,6 @@ lib/DNS/LDNS/Resolver.pm
lib/DNS/LDNS/RR.pm
lib/DNS/LDNS/RRList.pm
lib/DNS/LDNS/Zone.pm
-Makefile.PL
MANIFEST
ppport.h
README
diff --git a/contrib/DNS-LDNS/META.yml b/contrib/DNS-LDNS/META.yml
index b1f5ff10cc12..79efd69d9e45 100644
--- a/contrib/DNS-LDNS/META.yml
+++ b/contrib/DNS-LDNS/META.yml
@@ -1,26 +1,29 @@
---
abstract: 'Perl extension for the ldns library'
author:
- - 'Erik Pihl Ostlyngen <erik.ostlyngen@uninett.no>'
+ - 'Erik Ostlyngen <erik@uninett.no>'
build_requires:
- FindBin: 0
- Test::Exception: 0
- Test::More: 0
+ FindBin: '0'
+ Test::Exception: '0'
+ Test::More: '0'
configure_requires:
- Devel::CheckLib: 0
- ExtUtils::MakeMaker: 0
-distribution_type: module
+ Devel::CheckLib: '0.9'
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 6.57_05'
-license: perl
+generated_by: 'Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010'
+license: restrictive
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: DNS-LDNS
-no_index:
- directory:
- - t
- - inc
requires:
- XSLoader: 0
-version: 0.52
+ AutoLoader: '0'
+ Carp: '0'
+ Exporter: '0'
+ XSLoader: '0'
+ perl: '5.014002'
+ strict: '0'
+ warnings: '0'
+version: '0.61'
+x_generated_by_perl: v5.34.0
+x_serialization_backend: 'YAML::Tiny version 1.73'
diff --git a/contrib/DNS-LDNS/Makefile.PL b/contrib/DNS-LDNS/Makefile.PL
index 722e1b8b1e8c..53ed134757a5 100755..100644
--- a/contrib/DNS-LDNS/Makefile.PL
+++ b/contrib/DNS-LDNS/Makefile.PL
@@ -1,327 +1,355 @@
+# This Makefile.PL for DNS-LDNS was generated by
+# Dist::Zilla::Plugin::MakeMaker::Awesome 0.49.
+# Don't edit it but the dist.ini and plugins used to construct it.
+
+use strict;
+use warnings;
+
+# inserted by Dist::Zilla::Plugin::CheckLib 0.007
+use Devel::CheckLib;
+check_lib_or_exit(
+ header => 'ldns/ldns.h',
+ lib => 'ldns',
+);
+
use 5.014002;
use ExtUtils::MakeMaker;
-use Devel::CheckLib;
+my %WriteMakefileArgs = (
+ "ABSTRACT" => "Perl extension for the ldns library",
+ "AUTHOR" => "Erik Ostlyngen <erik\@uninett.no>",
+ "CONFIGURE_REQUIRES" => {
+ "Devel::CheckLib" => "0.9",
+ "ExtUtils::MakeMaker" => 0
+ },
+ "DISTNAME" => "DNS-LDNS",
+ "LICENSE" => "restrictive",
+ "MIN_PERL_VERSION" => "5.014002",
+ "NAME" => "DNS::LDNS",
+ "PREREQ_PM" => {
+ "AutoLoader" => 0,
+ "Carp" => 0,
+ "Exporter" => 0,
+ "XSLoader" => 0,
+ "strict" => 0,
+ "warnings" => 0
+ },
+ "TEST_REQUIRES" => {
+ "FindBin" => 0,
+ "Test::Exception" => 0,
+ "Test::More" => 0
+ },
+ "VERSION" => "0.61",
+ "test" => {
+ "TESTS" => "t/*.t"
+ }
+);
-check_lib_or_exit(
- lib => 'ldns',
- header => 'ldns/ldns.h',
- function => 'if(atof(ldns_version()) >= 1.6) return 0; else return 1;'
+%WriteMakefileArgs = (
+ %WriteMakefileArgs,
+ LIBS => ['-lldns'],
);
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-WriteMakefile(
- NAME => 'DNS::LDNS',
- VERSION_FROM => 'lib/DNS/LDNS.pm', # finds $VERSION
- CONFIGURE_REQUIRES => {
- 'Devel::CheckLib' => 0,
- 'ExtUtils::MakeMaker' => 0,
- },
- BUILD_REQUIRES => { # Actually required only by the tests
- 'FindBin' => 0,
- 'Test::More' => 0,
- 'Test::Exception' => 0,
- },
- PREREQ_PM => {
- 'XSLoader' => 0,
- },
- ($] >= 5.005 ? ## Add these new keywords supported since 5.005
- (ABSTRACT_FROM => 'lib/DNS/LDNS.pm', # retrieve abstract from module
- AUTHOR => 'Erik Pihl Ostlyngen <erik.ostlyngen@uninett.no>',
- LICENSE => 'perl') : ()),
- LIBS => ['-lldns'],
- DEFINE => '',
- INC => '-I.',
- # Un-comment this if you add C files to link with later:
- # OBJECT => '$(O_FILES)', # link all the C files too
+my %FallbackPrereqs = (
+ "AutoLoader" => 0,
+ "Carp" => 0,
+ "Exporter" => 0,
+ "FindBin" => 0,
+ "Test::Exception" => 0,
+ "Test::More" => 0,
+ "XSLoader" => 0,
+ "strict" => 0,
+ "warnings" => 0
);
-if (eval {require ExtUtils::Constant; 1}) {
- # If you edit these definitions to change the constants used by this module,
- # you will need to use the generated const-c.inc and const-xs.inc
- # files to replace their "fallback" counterparts before distributing your
- # changes.
- my @names = (qw(LDNS_AA LDNS_AD LDNS_CD LDNS_DEFAULT_EXP_TIME
+
+unless ( eval { ExtUtils::MakeMaker->VERSION('6.63_03') } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
+}
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+ unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+use ExtUtils::Constant;
+
+# If you edit these definitions to change the constants used by this module,
+# you will need to use the generated const-c.inc and const-xs.inc
+# files to replace their "fallback" counterparts before distributing your
+# changes.
+my @names = (qw(LDNS_AA LDNS_AD LDNS_CD LDNS_DEFAULT_EXP_TIME
LDNS_DEFAULT_TTL LDNS_DNSSEC_KEYPROTO LDNS_IP4ADDRLEN
- LDNS_IP6ADDRLEN LDNS_KEY_REVOKE_KEY LDNS_KEY_SEP_KEY
- LDNS_KEY_ZONE_KEY LDNS_MAX_DOMAINLEN LDNS_MAX_KEYLEN
+ LDNS_IP6ADDRLEN LDNS_KEY_REVOKE_KEY LDNS_KEY_SEP_KEY
+ LDNS_KEY_ZONE_KEY LDNS_MAX_DOMAINLEN LDNS_MAX_KEYLEN
LDNS_MAX_LABELLEN LDNS_MAX_PACKETLEN LDNS_MAX_POINTERS
LDNS_MAX_RDFLEN LDNS_NSEC3_MAX_ITERATIONS
- LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_PORT LDNS_QR LDNS_RA LDNS_RD
- LDNS_RDATA_FIELD_DESCRIPTORS_COMMON LDNS_RDF_SIZE_16BYTES
- LDNS_RDF_SIZE_6BYTES LDNS_RDF_SIZE_BYTE
- LDNS_RDF_SIZE_DOUBLEWORD LDNS_RDF_SIZE_WORD LDNS_RESOLV_ANCHOR
- LDNS_RESOLV_DEFDOMAIN LDNS_RESOLV_INET LDNS_RESOLV_INET6
- LDNS_RESOLV_INETANY LDNS_RESOLV_KEYWORD LDNS_RESOLV_KEYWORDS
- LDNS_RESOLV_NAMESERVER LDNS_RESOLV_OPTIONS LDNS_RESOLV_RTT_INF
- LDNS_RESOLV_RTT_MIN LDNS_RESOLV_SEARCH LDNS_RESOLV_SORTLIST
- LDNS_RR_OVERHEAD LDNS_SIGNATURE_LEAVE_ADD_NEW
+ LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_PORT LDNS_QR LDNS_RA LDNS_RD
+ LDNS_RDATA_FIELD_DESCRIPTORS_COMMON LDNS_RDF_SIZE_16BYTES
+ LDNS_RDF_SIZE_6BYTES LDNS_RDF_SIZE_BYTE
+ LDNS_RDF_SIZE_DOUBLEWORD LDNS_RDF_SIZE_WORD LDNS_RESOLV_ANCHOR
+ LDNS_RESOLV_DEFDOMAIN LDNS_RESOLV_INET LDNS_RESOLV_INET6
+ LDNS_RESOLV_INETANY LDNS_RESOLV_KEYWORD LDNS_RESOLV_KEYWORDS
+ LDNS_RESOLV_NAMESERVER LDNS_RESOLV_OPTIONS LDNS_RESOLV_RTT_INF
+ LDNS_RESOLV_RTT_MIN LDNS_RESOLV_SEARCH LDNS_RESOLV_SORTLIST
+ LDNS_RR_OVERHEAD LDNS_SIGNATURE_LEAVE_ADD_NEW
LDNS_SIGNATURE_LEAVE_NO_ADD LDNS_SIGNATURE_REMOVE_ADD_NEW
LDNS_SIGNATURE_REMOVE_NO_ADD LDNS_TC),
- {name=>"LDNS_CERT_ACPKIX", macro=>"1"},
- {name=>"LDNS_CERT_IACPKIX", macro=>"1"},
- {name=>"LDNS_CERT_IPGP", macro=>"1"},
- {name=>"LDNS_CERT_IPKIX", macro=>"1"},
- {name=>"LDNS_CERT_ISPKI", macro=>"1"},
- {name=>"LDNS_CERT_OID", macro=>"1"},
- {name=>"LDNS_CERT_PGP", macro=>"1"},
- {name=>"LDNS_CERT_PKIX", macro=>"1"},
- {name=>"LDNS_CERT_SPKI", macro=>"1"},
- {name=>"LDNS_CERT_URI", macro=>"1"},
- {name=>"LDNS_DH", macro=>"1"},
- {name=>"LDNS_DSA", macro=>"1"},
- {name=>"LDNS_DSA_NSEC3", macro=>"1"},
- {name=>"LDNS_ECC", macro=>"1"},
- {name=>"LDNS_ECC_GOST", macro=>"1"},
- {name=>"LDNS_HASH_GOST", macro=>"1"},
- {name=>"LDNS_PACKET_ANSWER", macro=>"1"},
- {name=>"LDNS_PACKET_IQUERY", macro=>"1"},
- {name=>"LDNS_PACKET_NODATA", macro=>"1"},
- {name=>"LDNS_PACKET_NOTIFY", macro=>"1"},
- {name=>"LDNS_PACKET_NXDOMAIN", macro=>"1"},
- {name=>"LDNS_PACKET_QUERY", macro=>"1"},
- {name=>"LDNS_PACKET_QUESTION", macro=>"1"},
- {name=>"LDNS_PACKET_REFERRAL", macro=>"1"},
- {name=>"LDNS_PACKET_STATUS", macro=>"1"},
- {name=>"LDNS_PACKET_UNKNOWN", macro=>"1"},
- {name=>"LDNS_PACKET_UPDATE", macro=>"1"},
- {name=>"LDNS_PRIVATEDNS", macro=>"1"},
- {name=>"LDNS_PRIVATEOID", macro=>"1"},
- {name=>"LDNS_RCODE_FORMERR", macro=>"1"},
- {name=>"LDNS_RCODE_NOERROR", macro=>"1"},
- {name=>"LDNS_RCODE_NOTAUTH", macro=>"1"},
- {name=>"LDNS_RCODE_NOTIMPL", macro=>"1"},
- {name=>"LDNS_RCODE_NOTZONE", macro=>"1"},
- {name=>"LDNS_RCODE_NXDOMAIN", macro=>"1"},
- {name=>"LDNS_RCODE_NXRRSET", macro=>"1"},
- {name=>"LDNS_RCODE_REFUSED", macro=>"1"},
- {name=>"LDNS_RCODE_SERVFAIL", macro=>"1"},
- {name=>"LDNS_RCODE_YXDOMAIN", macro=>"1"},
- {name=>"LDNS_RCODE_YXRRSET", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_A", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_AAAA", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_ALG", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_APL", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_ATMA", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_B32_EXT", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_B64", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_CERT_ALG", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_CLASS", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_DNAME", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_HEX", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT16", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT16_DATA", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT32", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT8", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_IPSECKEY", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_LOC", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NONE", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSAP", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC3_SALT", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_PERIOD", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_SERVICE", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_STR", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TIME", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_HIP", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TSIGTIME", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TYPE", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_UNKNOWN", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_WKS", macro=>"1"},
- {name=>"LDNS_RR_CLASS_ANY", macro=>"1"},
- {name=>"LDNS_RR_CLASS_CH", macro=>"1"},
- {name=>"LDNS_RR_CLASS_COUNT", macro=>"1"},
- {name=>"LDNS_RR_CLASS_FIRST", macro=>"1"},
- {name=>"LDNS_RR_CLASS_HS", macro=>"1"},
- {name=>"LDNS_RR_CLASS_IN", macro=>"1"},
- {name=>"LDNS_RR_CLASS_LAST", macro=>"1"},
- {name=>"LDNS_RR_CLASS_NONE", macro=>"1"},
- {name=>"LDNS_RR_COMPRESS", macro=>"1"},
- {name=>"LDNS_RR_NO_COMPRESS", macro=>"1"},
- {name=>"LDNS_RR_TYPE_A", macro=>"1"},
- {name=>"LDNS_RR_TYPE_A6", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AAAA", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AFSDB", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ANY", macro=>"1"},
- {name=>"LDNS_RR_TYPE_APL", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ATMA", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AXFR", macro=>"1"},
- {name=>"LDNS_RR_TYPE_CERT", macro=>"1"},
- {name=>"LDNS_RR_TYPE_CNAME", macro=>"1"},
- {name=>"LDNS_RR_TYPE_COUNT", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DHCID", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DLV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DNAME", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DNSKEY", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DS", macro=>"1"},
- {name=>"LDNS_RR_TYPE_EID", macro=>"1"},
- {name=>"LDNS_RR_TYPE_FIRST", macro=>"1"},
- {name=>"LDNS_RR_TYPE_GID", macro=>"1"},
- {name=>"LDNS_RR_TYPE_GPOS", macro=>"1"},
- {name=>"LDNS_RR_TYPE_HINFO", macro=>"1"},
- {name=>"LDNS_RR_TYPE_IPSECKEY", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ISDN", macro=>"1"},
- {name=>"LDNS_RR_TYPE_IXFR", macro=>"1"},
- {name=>"LDNS_RR_TYPE_KEY", macro=>"1"},
- {name=>"LDNS_RR_TYPE_KX", macro=>"1"},
- {name=>"LDNS_RR_TYPE_LAST", macro=>"1"},
- {name=>"LDNS_RR_TYPE_LOC", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MAILA", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MAILB", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MB", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MD", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MF", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MG", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MINFO", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MR", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MX", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NAPTR", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NIMLOC", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NS", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSAP", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSAP_PTR", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3PARAM", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3PARAMS", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NULL", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NXT", macro=>"1"},
- {name=>"LDNS_RR_TYPE_OPT", macro=>"1"},
- {name=>"LDNS_RR_TYPE_PTR", macro=>"1"},
- {name=>"LDNS_RR_TYPE_PX", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RP", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RRSIG", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RT", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SIG", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SINK", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SOA", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SPF", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SRV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SSHFP", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TALINK", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TSIG", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TXT", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UID", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UINFO", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UNSPEC", macro=>"1"},
- {name=>"LDNS_RR_TYPE_WKS", macro=>"1"},
- {name=>"LDNS_RR_TYPE_X25", macro=>"1"},
- {name=>"LDNS_RSAMD5", macro=>"1"},
- {name=>"LDNS_RSASHA1", macro=>"1"},
- {name=>"LDNS_RSASHA1_NSEC3", macro=>"1"},
- {name=>"LDNS_RSASHA256", macro=>"1"},
- {name=>"LDNS_RSASHA512", macro=>"1"},
- {name=>"LDNS_SECTION_ADDITIONAL", macro=>"1"},
- {name=>"LDNS_SECTION_ANSWER", macro=>"1"},
- {name=>"LDNS_SECTION_ANY", macro=>"1"},
- {name=>"LDNS_SECTION_ANY_NOQUESTION", macro=>"1"},
- {name=>"LDNS_SECTION_AUTHORITY", macro=>"1"},
- {name=>"LDNS_SECTION_QUESTION", macro=>"1"},
- {name=>"LDNS_SHA1", macro=>"1"},
- {name=>"LDNS_SHA256", macro=>"1"},
- {name=>"LDNS_SIGN_DSA", macro=>"1"},
- {name=>"LDNS_SIGN_DSA_NSEC3", macro=>"1"},
- {name=>"LDNS_SIGN_ECC_GOST", macro=>"1"},
- {name=>"LDNS_SIGN_HMACSHA1", macro=>"1"},
- {name=>"LDNS_SIGN_HMACSHA256", macro=>"1"},
- {name=>"LDNS_SIGN_RSAMD5", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA1", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA1_NSEC3", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA256", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA512", macro=>"1"},
- {name=>"LDNS_STATUS_ADDRESS_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_CERT_BAD_ALGORITHM", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_BOGUS", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_DNSKEY", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_DS", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_RRSIG", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_SIG_EXPIRED", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TSIG_BOGUS", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TSIG_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_VALIDATED", macro=>"1"},
- {name=>"LDNS_STATUS_DDD_OVERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", macro=>"1"},
- {name=>"LDNS_STATUS_DOMAINNAME_OVERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_DOMAINNAME_UNDERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_EMPTY_LABEL", macro=>"1"},
- {name=>"LDNS_STATUS_ENGINE_KEY_NOT_LOADED", macro=>"1"},
- {name=>"LDNS_STATUS_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_FILE_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_INTERNAL_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_B32_EXT", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_B64", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_HEX", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_INT", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_IP4", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_IP6", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_POINTER", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_STR", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_TIME", macro=>"1"},
- {name=>"LDNS_STATUS_LABEL_OVERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_MEM_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", macro=>"1"},
- {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", macro=>"1"},
- {name=>"LDNS_STATUS_NETWORK_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_NOT_IMPL", macro=>"1"},
- {name=>"LDNS_STATUS_NO_DATA", macro=>"1"},
- {name=>"LDNS_STATUS_NSEC3_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_NULL", macro=>"1"},
- {name=>"LDNS_STATUS_OK", macro=>"1"},
- {name=>"LDNS_STATUS_PACKET_OVERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_RES_NO_NS", macro=>"1"},
- {name=>"LDNS_STATUS_RES_QUERY", macro=>"1"},
- {name=>"LDNS_STATUS_SOCKET_ERROR", macro=>"1"},
- {name=>"LDNS_STATUS_SSL_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ALG_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_BAD_ESCAPE", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_CLASS_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_DNAME_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_EMPTY", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INCLUDE", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_KEYWORD_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ORIGIN", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_RDATA_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TTL", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TTL_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TYPE_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_VERSION_ERR", macro=>"1"},
- {name=>"LDNS_STATUS_UNKNOWN_INET", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_HEADER", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", macro=>"1"});
- ExtUtils::Constant::WriteConstants(
- NAME => 'LDNS',
- NAMES => \@names,
- DEFAULT_TYPE => 'IV',
- C_FILE => 'const-c.inc',
- XS_FILE => 'const-xs.inc',
- );
-
-}
-else {
- use File::Copy;
- use File::Spec;
- foreach my $file ('const-c.inc', 'const-xs.inc') {
- my $fallback = File::Spec->catfile('fallback', $file);
- copy ($fallback, $file) or die "Can't copy $fallback to $file: $!";
- }
-}
+ {name=>"LDNS_CERT_ACPKIX", macro=>"1"},
+ {name=>"LDNS_CERT_IACPKIX", macro=>"1"},
+ {name=>"LDNS_CERT_IPGP", macro=>"1"},
+ {name=>"LDNS_CERT_IPKIX", macro=>"1"},
+ {name=>"LDNS_CERT_ISPKI", macro=>"1"},
+ {name=>"LDNS_CERT_OID", macro=>"1"},
+ {name=>"LDNS_CERT_PGP", macro=>"1"},
+ {name=>"LDNS_CERT_PKIX", macro=>"1"},
+ {name=>"LDNS_CERT_SPKI", macro=>"1"},
+ {name=>"LDNS_CERT_URI", macro=>"1"},
+ {name=>"LDNS_DH", macro=>"1"},
+ {name=>"LDNS_DSA", macro=>"1"},
+ {name=>"LDNS_DSA_NSEC3", macro=>"1"},
+ {name=>"LDNS_ECC", macro=>"1"},
+ {name=>"LDNS_ECC_GOST", macro=>"1"},
+ {name=>"LDNS_HASH_GOST", macro=>"1"},
+ {name=>"LDNS_PACKET_ANSWER", macro=>"1"},
+ {name=>"LDNS_PACKET_IQUERY", macro=>"1"},
+ {name=>"LDNS_PACKET_NODATA", macro=>"1"},
+ {name=>"LDNS_PACKET_NOTIFY", macro=>"1"},
+ {name=>"LDNS_PACKET_NXDOMAIN", macro=>"1"},
+ {name=>"LDNS_PACKET_QUERY", macro=>"1"},
+ {name=>"LDNS_PACKET_QUESTION", macro=>"1"},
+ {name=>"LDNS_PACKET_REFERRAL", macro=>"1"},
+ {name=>"LDNS_PACKET_STATUS", macro=>"1"},
+ {name=>"LDNS_PACKET_UNKNOWN", macro=>"1"},
+ {name=>"LDNS_PACKET_UPDATE", macro=>"1"},
+ {name=>"LDNS_PRIVATEDNS", macro=>"1"},
+ {name=>"LDNS_PRIVATEOID", macro=>"1"},
+ {name=>"LDNS_RCODE_FORMERR", macro=>"1"},
+ {name=>"LDNS_RCODE_NOERROR", macro=>"1"},
+ {name=>"LDNS_RCODE_NOTAUTH", macro=>"1"},
+ {name=>"LDNS_RCODE_NOTIMPL", macro=>"1"},
+ {name=>"LDNS_RCODE_NOTZONE", macro=>"1"},
+ {name=>"LDNS_RCODE_NXDOMAIN", macro=>"1"},
+ {name=>"LDNS_RCODE_NXRRSET", macro=>"1"},
+ {name=>"LDNS_RCODE_REFUSED", macro=>"1"},
+ {name=>"LDNS_RCODE_SERVFAIL", macro=>"1"},
+ {name=>"LDNS_RCODE_YXDOMAIN", macro=>"1"},
+ {name=>"LDNS_RCODE_YXRRSET", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_A", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_AAAA", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_ALG", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_APL", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_ATMA", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_B32_EXT", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_B64", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_CERT_ALG", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_CLASS", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_DNAME", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_HEX", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT16", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT16_DATA", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT32", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT8", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_IPSECKEY", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_LOC", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NONE", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSAP", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSEC", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSEC3_SALT", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_PERIOD", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_SERVICE", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_STR", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_TIME", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_HIP", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_TSIGTIME", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_TYPE", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_UNKNOWN", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_WKS", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_ANY", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_CH", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_COUNT", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_FIRST", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_HS", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_IN", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_LAST", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_NONE", macro=>"1"},
+ {name=>"LDNS_RR_COMPRESS", macro=>"1"},
+ {name=>"LDNS_RR_NO_COMPRESS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_A", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_A6", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_AAAA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_AFSDB", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_ANY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_APL", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_ATMA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_AXFR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_CERT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_CNAME", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_COUNT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DHCID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DLV", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DNAME", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DNSKEY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_EID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_FIRST", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_GID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_GPOS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_HINFO", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_IPSECKEY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_ISDN", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_IXFR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_KEY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_KX", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_LAST", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_LOC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MAILA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MAILB", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MB", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MD", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MF", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MINFO", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MX", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NAPTR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NIMLOC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSAP", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSAP_PTR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC3", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC3PARAM", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC3PARAMS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NULL", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NXT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_OPT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_PTR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_PX", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_RP", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_RRSIG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_RT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SIG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SINK", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SOA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SPF", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SRV", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SSHFP", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_TALINK", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_TSIG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_TXT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_UID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_UINFO", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_UNSPEC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_WKS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_X25", macro=>"1"},
+ {name=>"LDNS_RSAMD5", macro=>"1"},
+ {name=>"LDNS_RSASHA1", macro=>"1"},
+ {name=>"LDNS_RSASHA1_NSEC3", macro=>"1"},
+ {name=>"LDNS_RSASHA256", macro=>"1"},
+ {name=>"LDNS_RSASHA512", macro=>"1"},
+ {name=>"LDNS_SECTION_ADDITIONAL", macro=>"1"},
+ {name=>"LDNS_SECTION_ANSWER", macro=>"1"},
+ {name=>"LDNS_SECTION_ANY", macro=>"1"},
+ {name=>"LDNS_SECTION_ANY_NOQUESTION", macro=>"1"},
+ {name=>"LDNS_SECTION_AUTHORITY", macro=>"1"},
+ {name=>"LDNS_SECTION_QUESTION", macro=>"1"},
+ {name=>"LDNS_SHA1", macro=>"1"},
+ {name=>"LDNS_SHA256", macro=>"1"},
+ {name=>"LDNS_SIGN_DSA", macro=>"1"},
+ {name=>"LDNS_SIGN_DSA_NSEC3", macro=>"1"},
+ {name=>"LDNS_SIGN_ECC_GOST", macro=>"1"},
+ {name=>"LDNS_SIGN_HMACSHA1", macro=>"1"},
+ {name=>"LDNS_SIGN_HMACSHA256", macro=>"1"},
+ {name=>"LDNS_SIGN_RSAMD5", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA1", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA1_NSEC3", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA256", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA512", macro=>"1"},
+ {name=>"LDNS_STATUS_ADDRESS_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_CERT_BAD_ALGORITHM", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_BOGUS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_DNSKEY", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_DS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_RRSIG", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_SIG_EXPIRED", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_TSIG_BOGUS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_TSIG_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_VALIDATED", macro=>"1"},
+ {name=>"LDNS_STATUS_DDD_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", macro=>"1"},
+ {name=>"LDNS_STATUS_DOMAINNAME_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_DOMAINNAME_UNDERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_EMPTY_LABEL", macro=>"1"},
+ {name=>"LDNS_STATUS_ENGINE_KEY_NOT_LOADED", macro=>"1"},
+ {name=>"LDNS_STATUS_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_FILE_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_INTERNAL_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_B32_EXT", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_B64", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_HEX", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_INT", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_IP4", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_IP6", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_POINTER", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_STR", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_TIME", macro=>"1"},
+ {name=>"LDNS_STATUS_LABEL_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_MEM_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", macro=>"1"},
+ {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", macro=>"1"},
+ {name=>"LDNS_STATUS_NETWORK_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_NOT_IMPL", macro=>"1"},
+ {name=>"LDNS_STATUS_NO_DATA", macro=>"1"},
+ {name=>"LDNS_STATUS_NSEC3_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_NULL", macro=>"1"},
+ {name=>"LDNS_STATUS_OK", macro=>"1"},
+ {name=>"LDNS_STATUS_PACKET_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_RES_NO_NS", macro=>"1"},
+ {name=>"LDNS_STATUS_RES_QUERY", macro=>"1"},
+ {name=>"LDNS_STATUS_SOCKET_ERROR", macro=>"1"},
+ {name=>"LDNS_STATUS_SSL_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ALG_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_BAD_ESCAPE", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_CLASS_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_DNAME_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_EMPTY", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_INCLUDE", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_KEYWORD_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ORIGIN", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_RDATA_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_TTL", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_TTL_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_TYPE_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_VERSION_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_UNKNOWN_INET", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_HEADER", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", macro=>"1"});
+ExtUtils::Constant::WriteConstants(
+ NAME => 'LDNS',
+ NAMES => \@names,
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c.inc',
+ XS_FILE => 'const-xs.inc',
+);
diff --git a/contrib/DNS-LDNS/README b/contrib/DNS-LDNS/README
index d14929bf33d3..035d08bbca45 100644
--- a/contrib/DNS-LDNS/README
+++ b/contrib/DNS-LDNS/README
@@ -1,4 +1,4 @@
-DNS::LDNS version 0.52
+DNS::LDNS version 0.61
======================
DESCRIPTION
diff --git a/contrib/DNS-LDNS/const-c.inc b/contrib/DNS-LDNS/const-c.inc
deleted file mode 100644
index 4b794458f9b4..000000000000
--- a/contrib/DNS-LDNS/const-c.inc
+++ /dev/null
@@ -1,2852 +0,0 @@
-#define PERL_constant_NOTFOUND 1
-#define PERL_constant_NOTDEF 2
-#define PERL_constant_ISIV 3
-#define PERL_constant_ISNO 4
-#define PERL_constant_ISNV 5
-#define PERL_constant_ISPV 6
-#define PERL_constant_ISPVN 7
-#define PERL_constant_ISSV 8
-#define PERL_constant_ISUNDEF 9
-#define PERL_constant_ISUV 10
-#define PERL_constant_ISYES 11
-
-#ifndef NVTYPE
-typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
-#endif
-#ifndef aTHX_
-#define aTHX_ /* 5.6 or later define this for threading support. */
-#endif
-#ifndef pTHX_
-#define pTHX_ /* 5.6 or later define this for threading support. */
-#endif
-
-static int
-constant_7 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_AA LDNS_AD LDNS_CD LDNS_DH LDNS_QR LDNS_RA LDNS_RD LDNS_TC */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'A':
- if (memEQ(name, "LDNS_AA", 7)) {
- /* ^ */
-#ifdef LDNS_AA
- *iv_return = LDNS_AA;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_AD", 7)) {
- /* ^ */
-#ifdef LDNS_AD
- *iv_return = LDNS_AD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_CD", 7)) {
- /* ^ */
-#ifdef LDNS_CD
- *iv_return = LDNS_CD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_DH", 7)) {
- /* ^ */
- *iv_return = LDNS_DH;
- return PERL_constant_ISIV;
- }
- break;
- case 'Q':
- if (memEQ(name, "LDNS_QR", 7)) {
- /* ^ */
-#ifdef LDNS_QR
- *iv_return = LDNS_QR;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RA", 7)) {
- /* ^ */
-#ifdef LDNS_RA
- *iv_return = LDNS_RA;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RD", 7)) {
- /* ^ */
-#ifdef LDNS_RD
- *iv_return = LDNS_RD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_TC", 7)) {
- /* ^ */
-#ifdef LDNS_TC
- *iv_return = LDNS_TC;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_13 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_OID LDNS_CERT_PGP LDNS_CERT_URI LDNS_ECC_GOST LDNS_SIGN_DSA */
- /* Offset 12 gives the best switch position. */
- switch (name[12]) {
- case 'A':
- if (memEQ(name, "LDNS_SIGN_DS", 12)) {
- /* A */
- *iv_return = LDNS_SIGN_DSA;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_CERT_OI", 12)) {
- /* D */
- *iv_return = LDNS_CERT_OID;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_CERT_UR", 12)) {
- /* I */
- *iv_return = LDNS_CERT_URI;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_CERT_PG", 12)) {
- /* P */
- *iv_return = LDNS_CERT_PGP;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_ECC_GOS", 12)) {
- /* T */
- *iv_return = LDNS_ECC_GOST;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_14 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_IPGP LDNS_CERT_PKIX LDNS_CERT_SPKI LDNS_DSA_NSEC3 LDNS_HASH_GOST
- LDNS_RR_TYPE_A LDNS_RSASHA256 LDNS_RSASHA512 LDNS_STATUS_OK */
- /* Offset 13 gives the best switch position. */
- switch (name[13]) {
- case '2':
- if (memEQ(name, "LDNS_RSASHA51", 13)) {
- /* 2 */
- *iv_return = LDNS_RSASHA512;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_DSA_NSEC", 13)) {
- /* 3 */
- *iv_return = LDNS_DSA_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case '6':
- if (memEQ(name, "LDNS_RSASHA25", 13)) {
- /* 6 */
- *iv_return = LDNS_RSASHA256;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_", 13)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_A;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_CERT_SPK", 13)) {
- /* I */
- *iv_return = LDNS_CERT_SPKI;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_STATUS_O", 13)) {
- /* K */
- *iv_return = LDNS_STATUS_OK;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_CERT_IPG", 13)) {
- /* P */
- *iv_return = LDNS_CERT_IPGP;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_HASH_GOS", 13)) {
- /* T */
- *iv_return = LDNS_HASH_GOST;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_CERT_PKI", 13)) {
- /* X */
- *iv_return = LDNS_CERT_PKIX;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_15 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_IPKIX LDNS_CERT_ISPKI LDNS_IP4ADDRLEN LDNS_IP6ADDRLEN
- LDNS_MAX_KEYLEN LDNS_MAX_RDFLEN LDNS_PRIVATEDNS LDNS_PRIVATEOID
- LDNS_RDF_TYPE_A LDNS_RR_TYPE_A6 LDNS_RR_TYPE_DS LDNS_RR_TYPE_KX
- LDNS_RR_TYPE_MB LDNS_RR_TYPE_MD LDNS_RR_TYPE_MF LDNS_RR_TYPE_MG
- LDNS_RR_TYPE_MR LDNS_RR_TYPE_MX LDNS_RR_TYPE_NS LDNS_RR_TYPE_PX
- LDNS_RR_TYPE_RP LDNS_RR_TYPE_RT LDNS_STATUS_ERR */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case '6':
- if (memEQ(name, "LDNS_RR_TYPE_A", 14)) {
- /* 6 */
- *iv_return = LDNS_RR_TYPE_A6;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RDF_TYPE_", 14)) {
- /* A */
- *iv_return = LDNS_RDF_TYPE_A;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* B */
- *iv_return = LDNS_RR_TYPE_MB;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_PRIVATEOI", 14)) {
- /* D */
- *iv_return = LDNS_PRIVATEOID;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* D */
- *iv_return = LDNS_RR_TYPE_MD;
- return PERL_constant_ISIV;
- }
- break;
- case 'F':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* F */
- *iv_return = LDNS_RR_TYPE_MF;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* G */
- *iv_return = LDNS_RR_TYPE_MG;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_CERT_ISPK", 14)) {
- /* I */
- *iv_return = LDNS_CERT_ISPKI;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_IP4ADDRLE", 14)) {
- /* N */
-#ifdef LDNS_IP4ADDRLEN
- *iv_return = LDNS_IP4ADDRLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_IP6ADDRLE", 14)) {
- /* N */
-#ifdef LDNS_IP6ADDRLEN
- *iv_return = LDNS_IP6ADDRLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_MAX_KEYLE", 14)) {
- /* N */
-#ifdef LDNS_MAX_KEYLEN
- *iv_return = LDNS_MAX_KEYLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_MAX_RDFLE", 14)) {
- /* N */
-#ifdef LDNS_MAX_RDFLEN
- *iv_return = LDNS_MAX_RDFLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_R", 14)) {
- /* P */
- *iv_return = LDNS_RR_TYPE_RP;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_MR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_ER", 14)) {
- /* R */
- *iv_return = LDNS_STATUS_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_PRIVATEDN", 14)) {
- /* S */
- *iv_return = LDNS_PRIVATEDNS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_D", 14)) {
- /* S */
- *iv_return = LDNS_RR_TYPE_DS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_N", 14)) {
- /* S */
- *iv_return = LDNS_RR_TYPE_NS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RR_TYPE_R", 14)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_RT;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_CERT_IPKI", 14)) {
- /* X */
- *iv_return = LDNS_CERT_IPKIX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_K", 14)) {
- /* X */
- *iv_return = LDNS_RR_TYPE_KX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* X */
- *iv_return = LDNS_RR_TYPE_MX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_P", 14)) {
- /* X */
- *iv_return = LDNS_RR_TYPE_PX;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_16 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_ACPKIX LDNS_DEFAULT_TTL LDNS_KEY_SEP_KEY LDNS_RESOLV_INET
- LDNS_RR_CLASS_CH LDNS_RR_CLASS_HS LDNS_RR_CLASS_IN LDNS_RR_COMPRESS
- LDNS_RR_OVERHEAD LDNS_RR_TYPE_ANY LDNS_RR_TYPE_APL LDNS_RR_TYPE_DLV
- LDNS_RR_TYPE_EID LDNS_RR_TYPE_GID LDNS_RR_TYPE_KEY LDNS_RR_TYPE_LOC
- LDNS_RR_TYPE_NXT LDNS_RR_TYPE_OPT LDNS_RR_TYPE_PTR LDNS_RR_TYPE_SIG
- LDNS_RR_TYPE_SOA LDNS_RR_TYPE_SPF LDNS_RR_TYPE_SRV LDNS_RR_TYPE_TXT
- LDNS_RR_TYPE_UID LDNS_RR_TYPE_WKS LDNS_RR_TYPE_X25 LDNS_SECTION_ANY
- LDNS_SIGN_RSAMD5 LDNS_STATUS_NULL */
- /* Offset 13 gives the best switch position. */
- switch (name[13]) {
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_ANY", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_ANY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_APL", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_APL;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SECTION_ANY", 16)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ANY;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RR_TYPE_DLV", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_DLV;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_RR_COMPRESS", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_COMPRESS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_OVERHEAD", 16)) {
- /* ^ */
-#ifdef LDNS_RR_OVERHEAD
- *iv_return = LDNS_RR_OVERHEAD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_EID", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_EID;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RR_TYPE_GID", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_GID;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_CERT_ACPKIX", 16)) {
- /* ^ */
- *iv_return = LDNS_CERT_ACPKIX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_KEY_SEP_KEY", 16)) {
- /* ^ */
-#ifdef LDNS_KEY_SEP_KEY
- *iv_return = LDNS_KEY_SEP_KEY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_KEY", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_KEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_RR_TYPE_LOC", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_LOC;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_SIGN_RSAMD5", 16)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSAMD5;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_RESOLV_INET", 16)) {
- /* ^ */
-#ifdef LDNS_RESOLV_INET
- *iv_return = LDNS_RESOLV_INET;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_NXT", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NXT;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RR_TYPE_OPT", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_OPT;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_PTR", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_PTR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_RR_TYPE_SIG", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SIG;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SOA", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SOA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SPF", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SPF;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SRV", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SRV;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_DEFAULT_TTL", 16)) {
- /* ^ */
-#ifdef LDNS_DEFAULT_TTL
- *iv_return = LDNS_DEFAULT_TTL;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_TXT", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_TXT;
- return PERL_constant_ISIV;
- }
- break;
- case 'U':
- if (memEQ(name, "LDNS_RR_TYPE_UID", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_UID;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_NULL", 16)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NULL;
- return PERL_constant_ISIV;
- }
- break;
- case 'W':
- if (memEQ(name, "LDNS_RR_TYPE_WKS", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_WKS;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_RR_TYPE_X25", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_X25;
- return PERL_constant_ISIV;
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_RR_CLASS_CH", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_CH;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_HS", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_HS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_IN", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_IN;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_17 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_IACPKIX LDNS_KEY_ZONE_KEY LDNS_MAX_LABELLEN LDNS_MAX_POINTERS
- LDNS_PACKET_QUERY LDNS_RDF_TYPE_ALG LDNS_RDF_TYPE_APL LDNS_RDF_TYPE_B64
- LDNS_RDF_TYPE_HEX LDNS_RDF_TYPE_HIP LDNS_RDF_TYPE_LOC LDNS_RDF_TYPE_STR
- LDNS_RDF_TYPE_WKS LDNS_RESOLV_INET6 LDNS_RR_CLASS_ANY LDNS_RR_TYPE_AAAA
- LDNS_RR_TYPE_ATMA LDNS_RR_TYPE_AXFR LDNS_RR_TYPE_CERT LDNS_RR_TYPE_GPOS
- LDNS_RR_TYPE_ISDN LDNS_RR_TYPE_IXFR LDNS_RR_TYPE_LAST LDNS_RR_TYPE_NSAP
- LDNS_RR_TYPE_NSEC LDNS_RR_TYPE_NULL LDNS_RR_TYPE_SINK LDNS_RR_TYPE_TSIG
- LDNS_SIGN_RSASHA1 */
- /* Offset 16 gives the best switch position. */
- switch (name[16]) {
- case '1':
- if (memEQ(name, "LDNS_SIGN_RSASHA", 16)) {
- /* 1 */
- *iv_return = LDNS_SIGN_RSASHA1;
- return PERL_constant_ISIV;
- }
- break;
- case '4':
- if (memEQ(name, "LDNS_RDF_TYPE_B6", 16)) {
- /* 4 */
- *iv_return = LDNS_RDF_TYPE_B64;
- return PERL_constant_ISIV;
- }
- break;
- case '6':
- if (memEQ(name, "LDNS_RESOLV_INET", 16)) {
- /* 6 */
-#ifdef LDNS_RESOLV_INET6
- *iv_return = LDNS_RESOLV_INET6;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_AAA", 16)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_AAAA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_ATM", 16)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_ATMA;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_LO", 16)) {
- /* C */
- *iv_return = LDNS_RDF_TYPE_LOC;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NSE", 16)) {
- /* C */
- *iv_return = LDNS_RR_TYPE_NSEC;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RDF_TYPE_AL", 16)) {
- /* G */
- *iv_return = LDNS_RDF_TYPE_ALG;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_TSI", 16)) {
- /* G */
- *iv_return = LDNS_RR_TYPE_TSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_RR_TYPE_SIN", 16)) {
- /* K */
- *iv_return = LDNS_RR_TYPE_SINK;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_RDF_TYPE_AP", 16)) {
- /* L */
- *iv_return = LDNS_RDF_TYPE_APL;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NUL", 16)) {
- /* L */
- *iv_return = LDNS_RR_TYPE_NULL;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_MAX_LABELLE", 16)) {
- /* N */
-#ifdef LDNS_MAX_LABELLEN
- *iv_return = LDNS_MAX_LABELLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_ISD", 16)) {
- /* N */
- *iv_return = LDNS_RR_TYPE_ISDN;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RDF_TYPE_HI", 16)) {
- /* P */
- *iv_return = LDNS_RDF_TYPE_HIP;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NSA", 16)) {
- /* P */
- *iv_return = LDNS_RR_TYPE_NSAP;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RDF_TYPE_ST", 16)) {
- /* R */
- *iv_return = LDNS_RDF_TYPE_STR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_AXF", 16)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_AXFR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_IXF", 16)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_IXFR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_MAX_POINTER", 16)) {
- /* S */
-#ifdef LDNS_MAX_POINTERS
- *iv_return = LDNS_MAX_POINTERS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RDF_TYPE_WK", 16)) {
- /* S */
- *iv_return = LDNS_RDF_TYPE_WKS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_GPO", 16)) {
- /* S */
- *iv_return = LDNS_RR_TYPE_GPOS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RR_TYPE_CER", 16)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_CERT;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_LAS", 16)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_LAST;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_CERT_IACPKI", 16)) {
- /* X */
- *iv_return = LDNS_CERT_IACPKIX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_HE", 16)) {
- /* X */
- *iv_return = LDNS_RDF_TYPE_HEX;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_KEY_ZONE_KE", 16)) {
- /* Y */
-#ifdef LDNS_KEY_ZONE_KEY
- *iv_return = LDNS_KEY_ZONE_KEY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_PACKET_QUER", 16)) {
- /* Y */
- *iv_return = LDNS_PACKET_QUERY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_AN", 16)) {
- /* Y */
- *iv_return = LDNS_RR_CLASS_ANY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_18 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_MAX_DOMAINLEN LDNS_MAX_PACKETLEN LDNS_PACKET_ANSWER
- LDNS_PACKET_IQUERY LDNS_PACKET_NODATA LDNS_PACKET_NOTIFY
- LDNS_PACKET_STATUS LDNS_PACKET_UPDATE LDNS_RCODE_FORMERR
- LDNS_RCODE_NOERROR LDNS_RCODE_NOTAUTH LDNS_RCODE_NOTIMPL
- LDNS_RCODE_NOTZONE LDNS_RCODE_NXRRSET LDNS_RCODE_REFUSED
- LDNS_RCODE_YXRRSET LDNS_RDF_SIZE_BYTE LDNS_RDF_SIZE_WORD
- LDNS_RDF_TYPE_AAAA LDNS_RDF_TYPE_ATMA LDNS_RDF_TYPE_INT8
- LDNS_RDF_TYPE_NONE LDNS_RDF_TYPE_NSAP LDNS_RDF_TYPE_NSEC
- LDNS_RDF_TYPE_TIME LDNS_RDF_TYPE_TYPE LDNS_RESOLV_ANCHOR
- LDNS_RESOLV_SEARCH LDNS_RR_CLASS_LAST LDNS_RR_CLASS_NONE
- LDNS_RR_TYPE_AFSDB LDNS_RR_TYPE_CNAME LDNS_RR_TYPE_COUNT
- LDNS_RR_TYPE_DHCID LDNS_RR_TYPE_DNAME LDNS_RR_TYPE_FIRST
- LDNS_RR_TYPE_HINFO LDNS_RR_TYPE_MAILA LDNS_RR_TYPE_MAILB
- LDNS_RR_TYPE_MINFO LDNS_RR_TYPE_NAPTR LDNS_RR_TYPE_NSEC3
- LDNS_RR_TYPE_RRSIG LDNS_RR_TYPE_SSHFP LDNS_RR_TYPE_UINFO
- LDNS_RSASHA1_NSEC3 LDNS_SIGN_ECC_GOST LDNS_SIGN_HMACSHA1 */
- /* Offset 17 gives the best switch position. */
- switch (name[17]) {
- case '1':
- if (memEQ(name, "LDNS_SIGN_HMACSHA", 17)) {
- /* 1 */
- *iv_return = LDNS_SIGN_HMACSHA1;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_RR_TYPE_NSEC", 17)) {
- /* 3 */
- *iv_return = LDNS_RR_TYPE_NSEC3;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RSASHA1_NSEC", 17)) {
- /* 3 */
- *iv_return = LDNS_RSASHA1_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case '8':
- if (memEQ(name, "LDNS_RDF_TYPE_INT", 17)) {
- /* 8 */
- *iv_return = LDNS_RDF_TYPE_INT8;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_PACKET_NODAT", 17)) {
- /* A */
- *iv_return = LDNS_PACKET_NODATA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_AAA", 17)) {
- /* A */
- *iv_return = LDNS_RDF_TYPE_AAAA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_ATM", 17)) {
- /* A */
- *iv_return = LDNS_RDF_TYPE_ATMA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_MAIL", 17)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_MAILA;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RR_TYPE_AFSD", 17)) {
- /* B */
- *iv_return = LDNS_RR_TYPE_AFSDB;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_MAIL", 17)) {
- /* B */
- *iv_return = LDNS_RR_TYPE_MAILB;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_NSE", 17)) {
- /* C */
- *iv_return = LDNS_RDF_TYPE_NSEC;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RCODE_REFUSE", 17)) {
- /* D */
- *iv_return = LDNS_RCODE_REFUSED;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_SIZE_WOR", 17)) {
- /* D */
-#ifdef LDNS_RDF_SIZE_WORD
- *iv_return = LDNS_RDF_SIZE_WORD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_DHCI", 17)) {
- /* D */
- *iv_return = LDNS_RR_TYPE_DHCID;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_PACKET_UPDAT", 17)) {
- /* E */
- *iv_return = LDNS_PACKET_UPDATE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_NOTZON", 17)) {
- /* E */
- *iv_return = LDNS_RCODE_NOTZONE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_SIZE_BYT", 17)) {
- /* E */
-#ifdef LDNS_RDF_SIZE_BYTE
- *iv_return = LDNS_RDF_SIZE_BYTE;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RDF_TYPE_NON", 17)) {
- /* E */
- *iv_return = LDNS_RDF_TYPE_NONE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_TIM", 17)) {
- /* E */
- *iv_return = LDNS_RDF_TYPE_TIME;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_TYP", 17)) {
- /* E */
- *iv_return = LDNS_RDF_TYPE_TYPE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_NON", 17)) {
- /* E */
- *iv_return = LDNS_RR_CLASS_NONE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_CNAM", 17)) {
- /* E */
- *iv_return = LDNS_RR_TYPE_CNAME;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_DNAM", 17)) {
- /* E */
- *iv_return = LDNS_RR_TYPE_DNAME;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RR_TYPE_RRSI", 17)) {
- /* G */
- *iv_return = LDNS_RR_TYPE_RRSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'H':
- if (memEQ(name, "LDNS_RCODE_NOTAUT", 17)) {
- /* H */
- *iv_return = LDNS_RCODE_NOTAUTH;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RESOLV_SEARC", 17)) {
- /* H */
-#ifdef LDNS_RESOLV_SEARCH
- *iv_return = LDNS_RESOLV_SEARCH;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_RCODE_NOTIMP", 17)) {
- /* L */
- *iv_return = LDNS_RCODE_NOTIMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_MAX_DOMAINLE", 17)) {
- /* N */
-#ifdef LDNS_MAX_DOMAINLEN
- *iv_return = LDNS_MAX_DOMAINLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_MAX_PACKETLE", 17)) {
- /* N */
-#ifdef LDNS_MAX_PACKETLEN
- *iv_return = LDNS_MAX_PACKETLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RR_TYPE_HINF", 17)) {
- /* O */
- *iv_return = LDNS_RR_TYPE_HINFO;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_MINF", 17)) {
- /* O */
- *iv_return = LDNS_RR_TYPE_MINFO;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_UINF", 17)) {
- /* O */
- *iv_return = LDNS_RR_TYPE_UINFO;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RDF_TYPE_NSA", 17)) {
- /* P */
- *iv_return = LDNS_RDF_TYPE_NSAP;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SSHF", 17)) {
- /* P */
- *iv_return = LDNS_RR_TYPE_SSHFP;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_PACKET_ANSWE", 17)) {
- /* R */
- *iv_return = LDNS_PACKET_ANSWER;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_FORMER", 17)) {
- /* R */
- *iv_return = LDNS_RCODE_FORMERR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_NOERRO", 17)) {
- /* R */
- *iv_return = LDNS_RCODE_NOERROR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RESOLV_ANCHO", 17)) {
- /* R */
-#ifdef LDNS_RESOLV_ANCHOR
- *iv_return = LDNS_RESOLV_ANCHOR;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_NAPT", 17)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_NAPTR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_PACKET_STATU", 17)) {
- /* S */
- *iv_return = LDNS_PACKET_STATUS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RCODE_NXRRSE", 17)) {
- /* T */
- *iv_return = LDNS_RCODE_NXRRSET;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_YXRRSE", 17)) {
- /* T */
- *iv_return = LDNS_RCODE_YXRRSET;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_LAS", 17)) {
- /* T */
- *iv_return = LDNS_RR_CLASS_LAST;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_COUN", 17)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_COUNT;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_FIRS", 17)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_FIRST;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SIGN_ECC_GOS", 17)) {
- /* T */
- *iv_return = LDNS_SIGN_ECC_GOST;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_PACKET_IQUER", 17)) {
- /* Y */
- *iv_return = LDNS_PACKET_IQUERY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_PACKET_NOTIF", 17)) {
- /* Y */
- *iv_return = LDNS_PACKET_NOTIFY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_19 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_KEY_REVOKE_KEY LDNS_PACKET_UNKNOWN LDNS_RCODE_NXDOMAIN
- LDNS_RCODE_SERVFAIL LDNS_RCODE_YXDOMAIN LDNS_RDF_TYPE_CLASS
- LDNS_RDF_TYPE_DNAME LDNS_RDF_TYPE_INT16 LDNS_RDF_TYPE_INT32
- LDNS_RESOLV_INETANY LDNS_RESOLV_KEYWORD LDNS_RESOLV_OPTIONS
- LDNS_RESOLV_RTT_INF LDNS_RESOLV_RTT_MIN LDNS_RR_CLASS_COUNT
- LDNS_RR_CLASS_FIRST LDNS_RR_NO_COMPRESS LDNS_RR_TYPE_DNSKEY
- LDNS_RR_TYPE_NIMLOC LDNS_RR_TYPE_TALINK LDNS_RR_TYPE_UNSPEC
- LDNS_SECTION_ANSWER LDNS_SIGN_DSA_NSEC3 LDNS_SIGN_RSASHA256
- LDNS_SIGN_RSASHA512 LDNS_STATUS_MEM_ERR LDNS_STATUS_NO_DATA
- LDNS_STATUS_SSL_ERR */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_TALINK", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_TALINK;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_CLASS", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_CLASS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_COUNT", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_COUNT;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RDF_TYPE_DNAME", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_DNAME;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_KEY_REVOKE_KEY", 19)) {
- /* ^ */
-#ifdef LDNS_KEY_REVOKE_KEY
- *iv_return = LDNS_KEY_REVOKE_KEY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RESOLV_INETANY", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_INETANY
- *iv_return = LDNS_RESOLV_INETANY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'F':
- if (memEQ(name, "LDNS_RR_CLASS_FIRST", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_FIRST;
- return PERL_constant_ISIV;
- }
- break;
- case 'H':
- if (memEQ(name, "LDNS_SIGN_RSASHA256", 19)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSASHA256;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SIGN_RSASHA512", 19)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSASHA512;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_RDF_TYPE_INT16", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_INT16;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_INT32", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_INT32;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NIMLOC", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NIMLOC;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_PACKET_UNKNOWN", 19)) {
- /* ^ */
- *iv_return = LDNS_PACKET_UNKNOWN;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_STATUS_SSL_ERR", 19)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SSL_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_STATUS_MEM_ERR", 19)) {
- /* ^ */
- *iv_return = LDNS_STATUS_MEM_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_RR_TYPE_DNSKEY", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_DNSKEY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_UNSPEC", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_UNSPEC;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SECTION_ANSWER", 19)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ANSWER;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SIGN_DSA_NSEC3", 19)) {
- /* ^ */
- *iv_return = LDNS_SIGN_DSA_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RCODE_NXDOMAIN", 19)) {
- /* ^ */
- *iv_return = LDNS_RCODE_NXDOMAIN;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_YXDOMAIN", 19)) {
- /* ^ */
- *iv_return = LDNS_RCODE_YXDOMAIN;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_NO_COMPRESS", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_NO_COMPRESS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RESOLV_OPTIONS", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_OPTIONS
- *iv_return = LDNS_RESOLV_OPTIONS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RESOLV_RTT_INF", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_RTT_INF
- *iv_return = LDNS_RESOLV_RTT_INF;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RESOLV_RTT_MIN", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_RTT_MIN
- *iv_return = LDNS_RESOLV_RTT_MIN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'V':
- if (memEQ(name, "LDNS_RCODE_SERVFAIL", 19)) {
- /* ^ */
- *iv_return = LDNS_RCODE_SERVFAIL;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_RESOLV_KEYWORD", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_KEYWORD
- *iv_return = LDNS_RESOLV_KEYWORD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_STATUS_NO_DATA", 19)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NO_DATA;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_20 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_DNSSEC_KEYPROTO LDNS_PACKET_NXDOMAIN LDNS_PACKET_QUESTION
- LDNS_PACKET_REFERRAL LDNS_RDF_SIZE_6BYTES LDNS_RDF_TYPE_PERIOD
- LDNS_RESOLV_KEYWORDS LDNS_RESOLV_SORTLIST LDNS_SIGN_HMACSHA256
- LDNS_STATUS_FILE_ERR LDNS_STATUS_NOT_IMPL */
- /* Offset 18 gives the best switch position. */
- switch (name[18]) {
- case '5':
- if (memEQ(name, "LDNS_SIGN_HMACSHA256", 20)) {
- /* ^ */
- *iv_return = LDNS_SIGN_HMACSHA256;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_PACKET_REFERRAL", 20)) {
- /* ^ */
- *iv_return = LDNS_PACKET_REFERRAL;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RESOLV_KEYWORDS", 20)) {
- /* ^ */
-#ifdef LDNS_RESOLV_KEYWORDS
- *iv_return = LDNS_RESOLV_KEYWORDS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_RDF_SIZE_6BYTES", 20)) {
- /* ^ */
-#ifdef LDNS_RDF_SIZE_6BYTES
- *iv_return = LDNS_RDF_SIZE_6BYTES;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_PACKET_NXDOMAIN", 20)) {
- /* ^ */
- *iv_return = LDNS_PACKET_NXDOMAIN;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_PACKET_QUESTION", 20)) {
- /* ^ */
- *iv_return = LDNS_PACKET_QUESTION;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_PERIOD", 20)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_PERIOD;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_NOT_IMPL", 20)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NOT_IMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_FILE_ERR", 20)) {
- /* ^ */
- *iv_return = LDNS_STATUS_FILE_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_RESOLV_SORTLIST", 20)) {
- /* ^ */
-#ifdef LDNS_RESOLV_SORTLIST
- *iv_return = LDNS_RESOLV_SORTLIST;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_DNSSEC_KEYPROTO", 20)) {
- /* ^ */
-#ifdef LDNS_DNSSEC_KEYPROTO
- *iv_return = LDNS_DNSSEC_KEYPROTO;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_21 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_DEFAULT_EXP_TIME LDNS_RDF_SIZE_16BYTES LDNS_RDF_TYPE_B32_EXT
- LDNS_RDF_TYPE_SERVICE LDNS_RDF_TYPE_UNKNOWN LDNS_RESOLV_DEFDOMAIN
- LDNS_RR_TYPE_IPSECKEY LDNS_RR_TYPE_NSAP_PTR LDNS_SECTION_QUESTION
- LDNS_STATUS_NSEC3_ERR LDNS_STATUS_RES_NO_NS LDNS_STATUS_RES_QUERY */
- /* Offset 16 gives the best switch position. */
- switch (name[16]) {
- case '2':
- if (memEQ(name, "LDNS_RDF_TYPE_B32_EXT", 21)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_B32_EXT;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_STATUS_NSEC3_ERR", 21)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NSEC3_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RDF_SIZE_16BYTES", 21)) {
- /* ^ */
-#ifdef LDNS_RDF_SIZE_16BYTES
- *iv_return = LDNS_RDF_SIZE_16BYTES;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_RR_TYPE_IPSECKEY", 21)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_IPSECKEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_RDF_TYPE_UNKNOWN", 21)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_UNKNOWN;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_RES_NO_NS", 21)) {
- /* ^ */
- *iv_return = LDNS_STATUS_RES_NO_NS;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RESOLV_DEFDOMAIN", 21)) {
- /* ^ */
-#ifdef LDNS_RESOLV_DEFDOMAIN
- *iv_return = LDNS_RESOLV_DEFDOMAIN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_NSAP_PTR", 21)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NSAP_PTR;
- return PERL_constant_ISIV;
- }
- break;
- case 'Q':
- if (memEQ(name, "LDNS_STATUS_RES_QUERY", 21)) {
- /* ^ */
- *iv_return = LDNS_STATUS_RES_QUERY;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RDF_TYPE_SERVICE", 21)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_SERVICE;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_SECTION_QUESTION", 21)) {
- /* ^ */
- *iv_return = LDNS_SECTION_QUESTION;
- return PERL_constant_ISIV;
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_DEFAULT_EXP_TIME", 21)) {
- /* ^ */
-#ifdef LDNS_DEFAULT_EXP_TIME
- *iv_return = LDNS_DEFAULT_EXP_TIME;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_22 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_TYPE_CERT_ALG LDNS_RDF_TYPE_IPSECKEY LDNS_RDF_TYPE_TSIGTIME
- LDNS_RESOLV_NAMESERVER LDNS_SECTION_AUTHORITY LDNS_STATUS_SYNTAX_ERR
- LDNS_STATUS_SYNTAX_TTL */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_CERT_ALG", 22)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_CERT_ALG;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_RDF_TYPE_IPSECKEY", 22)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_IPSECKEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_RESOLV_NAMESERVER", 22)) {
- /* ^ */
-#ifdef LDNS_RESOLV_NAMESERVER
- *iv_return = LDNS_RESOLV_NAMESERVER;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ERR", 22)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ERR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_SYNTAX_TTL", 22)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_TTL;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RDF_TYPE_TSIGTIME", 22)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_TSIGTIME;
- return PERL_constant_ISIV;
- }
- break;
- case 'U':
- if (memEQ(name, "LDNS_SECTION_AUTHORITY", 22)) {
- /* ^ */
- *iv_return = LDNS_SECTION_AUTHORITY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_23 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RR_TYPE_NSEC3PARAM LDNS_SECTION_ADDITIONAL LDNS_SIGN_RSASHA1_NSEC3
- LDNS_STATUS_ADDRESS_ERR LDNS_STATUS_EMPTY_LABEL LDNS_STATUS_INVALID_B64
- LDNS_STATUS_INVALID_HEX LDNS_STATUS_INVALID_INT LDNS_STATUS_INVALID_IP4
- LDNS_STATUS_INVALID_IP6 LDNS_STATUS_INVALID_STR LDNS_STATUS_NETWORK_ERR */
- /* Offset 21 gives the best switch position. */
- switch (name[21]) {
- case '6':
- if (memEQ(name, "LDNS_STATUS_INVALID_B64", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_B64;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_NSEC3PARAM", 23)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NSEC3PARAM;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SECTION_ADDITIONAL", 23)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ADDITIONAL;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_SIGN_RSASHA1_NSEC3", 23)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSASHA1_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_STATUS_EMPTY_LABEL", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_EMPTY_LABEL;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_INVALID_HEX", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_HEX;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_INVALID_INT", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_INT;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_INVALID_IP4", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_IP4;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_INVALID_IP6", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_IP6;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_ADDRESS_ERR", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_ADDRESS_ERR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_NETWORK_ERR", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NETWORK_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_INVALID_STR", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_STR;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_24 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_SIZE_DOUBLEWORD LDNS_RDF_TYPE_INT16_DATA LDNS_RDF_TYPE_NSEC3_SALT
- LDNS_RR_TYPE_NSEC3PARAMS LDNS_STATUS_CRYPTO_BOGUS LDNS_STATUS_CRYPTO_NO_DS
- LDNS_STATUS_DDD_OVERFLOW LDNS_STATUS_INTERNAL_ERR LDNS_STATUS_INVALID_TIME
- LDNS_STATUS_SOCKET_ERROR LDNS_STATUS_SYNTAX_EMPTY LDNS_STATUS_UNKNOWN_INET
- */
- /* Offset 17 gives the best switch position. */
- switch (name[17]) {
- case '1':
- if (memEQ(name, "LDNS_RDF_TYPE_INT16_DATA", 24)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_INT16_DATA;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_RR_TYPE_NSEC3PARAMS", 24)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NSEC3PARAMS;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RDF_SIZE_DOUBLEWORD", 24)) {
- /* ^ */
-#ifdef LDNS_RDF_SIZE_DOUBLEWORD
- *iv_return = LDNS_RDF_SIZE_DOUBLEWORD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_NSEC3_SALT", 24)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_NSEC3_SALT;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_STATUS_INVALID_TIME", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_TIME;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_INTERNAL_ERR", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INTERNAL_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_BOGUS", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_BOGUS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_DS", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_DS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SOCKET_ERROR", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SOCKET_ERROR;
- return PERL_constant_ISIV;
- }
- break;
- case 'V':
- if (memEQ(name, "LDNS_STATUS_DDD_OVERFLOW", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DDD_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'W':
- if (memEQ(name, "LDNS_STATUS_UNKNOWN_INET", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_UNKNOWN_INET;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_EMPTY", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_EMPTY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_26 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_LABEL_OVERFLOW LDNS_STATUS_SYNTAX_ALG_ERR
- LDNS_STATUS_SYNTAX_INCLUDE LDNS_STATUS_SYNTAX_TTL_ERR */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'E':
- if (memEQ(name, "LDNS_STATUS_LABEL_OVERFLOW", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_LABEL_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ALG_ERR", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ALG_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_INCLUDE", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_INCLUDE;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_TTL_ERR", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_TTL_ERR;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_27 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_SECTION_ANY_NOQUESTION
- LDNS_SIGNATURE_LEAVE_NO_ADD LDNS_STATUS_CRYPTO_NO_RRSIG
- LDNS_STATUS_CRYPTO_TSIG_ERR LDNS_STATUS_INVALID_B32_EXT
- LDNS_STATUS_INVALID_POINTER LDNS_STATUS_PACKET_OVERFLOW
- LDNS_STATUS_SYNTAX_TYPE_ERR */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'B':
- if (memEQ(name, "LDNS_STATUS_INVALID_B32_EXT", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_B32_EXT;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_RRSIG", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_RRSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_INVALID_POINTER", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_POINTER;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_TSIG_ERR", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_TSIG_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'U':
- if (memEQ(name, "LDNS_NSEC3_VARS_OPTOUT_MASK", 27)) {
- /* ^ */
-#ifdef LDNS_NSEC3_VARS_OPTOUT_MASK
- *iv_return = LDNS_NSEC3_VARS_OPTOUT_MASK;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_SECTION_ANY_NOQUESTION", 27)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ANY_NOQUESTION;
- return PERL_constant_ISIV;
- }
- break;
- case 'V':
- if (memEQ(name, "LDNS_STATUS_PACKET_OVERFLOW", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_PACKET_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_TYPE_ERR", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_TYPE_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_SIGNATURE_LEAVE_NO_ADD", 27)) {
- /* ^ */
-#ifdef LDNS_SIGNATURE_LEAVE_NO_ADD
- *iv_return = LDNS_SIGNATURE_LEAVE_NO_ADD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_28 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_SIGNATURE_LEAVE_ADD_NEW LDNS_SIGNATURE_REMOVE_NO_ADD
- LDNS_STATUS_CRYPTO_NO_DNSKEY LDNS_STATUS_CRYPTO_VALIDATED
- LDNS_STATUS_SYNTAX_CLASS_ERR LDNS_STATUS_SYNTAX_DNAME_ERR
- LDNS_STATUS_SYNTAX_RDATA_ERR */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'A':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_VALIDATED", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_VALIDATED;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_RDATA_ERR", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_RDATA_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_SIGNATURE_REMOVE_NO_ADD", 28)) {
- /* ^ */
-#ifdef LDNS_SIGNATURE_REMOVE_NO_ADD
- *iv_return = LDNS_SIGNATURE_REMOVE_NO_ADD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_CLASS_ERR", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_CLASS_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_DNAME_ERR", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_DNAME_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_DNSKEY", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_DNSKEY;
- return PERL_constant_ISIV;
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_SIGNATURE_LEAVE_ADD_NEW", 28)) {
- /* ^ */
-#ifdef LDNS_SIGNATURE_LEAVE_ADD_NEW
- *iv_return = LDNS_SIGNATURE_LEAVE_ADD_NEW;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_29 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_SIGNATURE_REMOVE_ADD_NEW LDNS_STATUS_CRYPTO_TSIG_BOGUS
- LDNS_STATUS_SYNTAX_BAD_ESCAPE */
- /* Offset 15 gives the best switch position. */
- switch (name[15]) {
- case 'P':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_TSIG_BOGUS", 29)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_TSIG_BOGUS;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_SIGNATURE_REMOVE_ADD_NEW", 29)) {
- /* ^ */
-#ifdef LDNS_SIGNATURE_REMOVE_ADD_NEW
- *iv_return = LDNS_SIGNATURE_REMOVE_ADD_NEW;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_BAD_ESCAPE", 29)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_BAD_ESCAPE;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_30 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_TYPE_NSEC3_NEXT_OWNER LDNS_STATUS_CERT_BAD_ALGORITHM
- LDNS_STATUS_CRYPTO_SIG_EXPIRED LDNS_STATUS_SYNTAX_KEYWORD_ERR
- LDNS_STATUS_SYNTAX_VERSION_ERR */
- /* Offset 25 gives the best switch position. */
- switch (name[25]) {
- case 'D':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_KEYWORD_ERR", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_KEYWORD_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_VERSION_ERR", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_VERSION_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", 30)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_NSEC3_NEXT_OWNER;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_SIG_EXPIRED", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_SIG_EXPIRED;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_CERT_BAD_ALGORITHM", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CERT_BAD_ALGORITHM;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_32 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL LDNS_STATUS_CRYPTO_NO_TRUSTED_DS
- LDNS_STATUS_DOMAINNAME_UNDERFLOW */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'L':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", 32)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_STATUS_DOMAINNAME_UNDERFLOW", 32)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DOMAINNAME_UNDERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", 32)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_TRUSTED_DS;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_35 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDATA_FIELD_DESCRIPTORS_COMMON LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED
- LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR LDNS_STATUS_DNSSEC_EXISTENCE_DENIED
- LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW */
- /* Offset 21 gives the best switch position. */
- switch (name[21]) {
- case 'G':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DNSSEC_EXISTENCE_DENIED;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RDATA_FIELD_DESCRIPTORS_COMMON", 35)) {
- /* ^ */
-#ifdef LDNS_RDATA_FIELD_DESCRIPTORS_COMMON
- *iv_return = LDNS_RDATA_FIELD_DESCRIPTORS_COMMON;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_36 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY LDNS_STATUS_MISSING_RDATA_FIELDS_KEY
- LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR LDNS_STATUS_WIRE_INCOMPLETE_QUESTION
- */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_QUESTION;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_MISSING_RDATA_FIELDS_KEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_38 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED
- LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG
- LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL
- LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW
- LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant (pTHX_ const char *name, STRLEN len, IV *iv_return) {
- /* Initially switch on the length of the name. */
- /* When generated this function returned values for the list of names given
- in this section of perl code. Rather than manually editing these functions
- to add or remove constants, which would result in this comment and section
- of code becoming inaccurate, we recommend that you edit this section of
- code, and use it to regenerate a new set of constant functions which you
- then use to replace the originals.
-
- Regenerate these constant functions by feeding this entire source file to
- perl -x
-
-#!/usr/bin/perl -w
-use ExtUtils::Constant qw (constant_types C_constant XS_constant);
-
-my $types = {map {($_, 1)} qw(IV)};
-my @names = (qw(LDNS_AA LDNS_AD LDNS_CD LDNS_DEFAULT_EXP_TIME LDNS_DEFAULT_TTL
- LDNS_DNSSEC_KEYPROTO LDNS_IP4ADDRLEN LDNS_IP6ADDRLEN
- LDNS_KEY_REVOKE_KEY LDNS_KEY_SEP_KEY LDNS_KEY_ZONE_KEY
- LDNS_MAX_DOMAINLEN LDNS_MAX_KEYLEN LDNS_MAX_LABELLEN
- LDNS_MAX_PACKETLEN LDNS_MAX_POINTERS LDNS_MAX_RDFLEN
- LDNS_NSEC3_MAX_ITERATIONS LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_PORT
- LDNS_QR LDNS_RA LDNS_RD LDNS_RDATA_FIELD_DESCRIPTORS_COMMON
- LDNS_RDF_SIZE_16BYTES LDNS_RDF_SIZE_6BYTES LDNS_RDF_SIZE_BYTE
- LDNS_RDF_SIZE_DOUBLEWORD LDNS_RDF_SIZE_WORD LDNS_RESOLV_ANCHOR
- LDNS_RESOLV_DEFDOMAIN LDNS_RESOLV_INET LDNS_RESOLV_INET6
- LDNS_RESOLV_INETANY LDNS_RESOLV_KEYWORD LDNS_RESOLV_KEYWORDS
- LDNS_RESOLV_NAMESERVER LDNS_RESOLV_OPTIONS LDNS_RESOLV_RTT_INF
- LDNS_RESOLV_RTT_MIN LDNS_RESOLV_SEARCH LDNS_RESOLV_SORTLIST
- LDNS_RR_OVERHEAD LDNS_SIGNATURE_LEAVE_ADD_NEW
- LDNS_SIGNATURE_LEAVE_NO_ADD LDNS_SIGNATURE_REMOVE_ADD_NEW
- LDNS_SIGNATURE_REMOVE_NO_ADD LDNS_TC),
- {name=>"LDNS_CERT_ACPKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_IACPKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_IPGP", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_IPKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_ISPKI", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_OID", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_PGP", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_PKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_SPKI", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_URI", type=>"IV", macro=>"1"},
- {name=>"LDNS_DH", type=>"IV", macro=>"1"},
- {name=>"LDNS_DSA", type=>"IV", macro=>"1"},
- {name=>"LDNS_DSA_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_ECC", type=>"IV", macro=>"1"},
- {name=>"LDNS_ECC_GOST", type=>"IV", macro=>"1"},
- {name=>"LDNS_HASH_GOST", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_ANSWER", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_IQUERY", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_NODATA", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_NOTIFY", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_NXDOMAIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_QUERY", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_QUESTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_REFERRAL", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_STATUS", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_UNKNOWN", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_UPDATE", type=>"IV", macro=>"1"},
- {name=>"LDNS_PRIVATEDNS", type=>"IV", macro=>"1"},
- {name=>"LDNS_PRIVATEOID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_FORMERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOERROR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOTAUTH", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOTIMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOTZONE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NXDOMAIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NXRRSET", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_REFUSED", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_SERVFAIL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_YXDOMAIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_YXRRSET", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_A", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_AAAA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_ALG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_APL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_ATMA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_B32_EXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_B64", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_CERT_ALG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_CLASS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_DNAME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_HEX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_HIP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT16", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT16_DATA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT32", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT8", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_IPSECKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_LOC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NONE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSAP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC3_SALT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_PERIOD", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_SERVICE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_STR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TIME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TSIGTIME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TYPE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_UNKNOWN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_WKS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_ANY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_CH", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_COUNT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_FIRST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_HS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_IN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_LAST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_NONE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_COMPRESS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_NO_COMPRESS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_A", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_A6", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AAAA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AFSDB", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ANY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_APL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ATMA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AXFR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_CERT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_CNAME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_COUNT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DHCID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DLV", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DNAME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_EID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_FIRST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_GID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_GPOS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_HINFO", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_IPSECKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ISDN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_IXFR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_KEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_KX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_LAST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_LOC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MAILA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MAILB", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MB", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MD", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MF", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MINFO", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NAPTR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NIMLOC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSAP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSAP_PTR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3PARAM", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3PARAMS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NULL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_OPT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_PTR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_PX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RRSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SINK", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SOA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SPF", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SRV", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SSHFP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TALINK", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UINFO", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UNSPEC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_WKS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_X25", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSAMD5", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA1_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA512", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ADDITIONAL", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ANSWER", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ANY", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ANY_NOQUESTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_AUTHORITY", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_QUESTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_SHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_SHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_DSA", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_DSA_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_ECC_GOST", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_HMACSHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_HMACSHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSAMD5", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA1_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA512", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_ADDRESS_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CERT_BAD_ALGORITHM", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_BOGUS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_DS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_RRSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_SIG_EXPIRED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TSIG_BOGUS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TSIG_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_VALIDATED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DDD_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DOMAINNAME_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DOMAINNAME_UNDERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_EMPTY_LABEL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_ENGINE_KEY_NOT_LOADED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_FILE_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INTERNAL_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_B32_EXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_B64", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_HEX", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_INT", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_IP4", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_IP6", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_POINTER", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_STR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_TIME", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_LABEL_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_MEM_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NETWORK_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NOT_IMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NO_DATA", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NSEC3_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NULL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_OK", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_PACKET_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_RES_NO_NS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_RES_QUERY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SOCKET_ERROR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SSL_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ALG_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_BAD_ESCAPE", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_CLASS_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_DNAME_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_EMPTY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INCLUDE", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_KEYWORD_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ORIGIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_RDATA_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TTL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TTL_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TYPE_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_VERSION_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_UNKNOWN_INET", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_HEADER", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", type=>"IV", macro=>"1"});
-
-print constant_types(), "\n"; # macro defs
-foreach (C_constant ("LDNS", 'constant', 'IV', $types, undef, 3, @names) ) {
- print $_, "\n"; # C constant subs
-}
-print "\n#### XS Section:\n";
-print XS_constant ("LDNS", $types);
-__END__
- */
-
- switch (len) {
- case 7:
- return constant_7 (aTHX_ name, iv_return);
- break;
- case 8:
- /* Names all of length 8. */
- /* LDNS_DSA LDNS_ECC */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'D':
- if (memEQ(name, "LDNS_DSA", 8)) {
- /* ^ */
- *iv_return = LDNS_DSA;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_ECC", 8)) {
- /* ^ */
- *iv_return = LDNS_ECC;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 9:
- /* Names all of length 9. */
- /* LDNS_PORT LDNS_SHA1 */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'P':
- if (memEQ(name, "LDNS_PORT", 9)) {
- /* ^ */
-#ifdef LDNS_PORT
- *iv_return = LDNS_PORT;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_SHA1", 9)) {
- /* ^ */
- *iv_return = LDNS_SHA1;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 11:
- /* Names all of length 11. */
- /* LDNS_RSAMD5 LDNS_SHA256 */
- /* Offset 10 gives the best switch position. */
- switch (name[10]) {
- case '5':
- if (memEQ(name, "LDNS_RSAMD", 10)) {
- /* 5 */
- *iv_return = LDNS_RSAMD5;
- return PERL_constant_ISIV;
- }
- break;
- case '6':
- if (memEQ(name, "LDNS_SHA25", 10)) {
- /* 6 */
- *iv_return = LDNS_SHA256;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 12:
- if (memEQ(name, "LDNS_RSASHA1", 12)) {
- *iv_return = LDNS_RSASHA1;
- return PERL_constant_ISIV;
- }
- break;
- case 13:
- return constant_13 (aTHX_ name, iv_return);
- break;
- case 14:
- return constant_14 (aTHX_ name, iv_return);
- break;
- case 15:
- return constant_15 (aTHX_ name, iv_return);
- break;
- case 16:
- return constant_16 (aTHX_ name, iv_return);
- break;
- case 17:
- return constant_17 (aTHX_ name, iv_return);
- break;
- case 18:
- return constant_18 (aTHX_ name, iv_return);
- break;
- case 19:
- return constant_19 (aTHX_ name, iv_return);
- break;
- case 20:
- return constant_20 (aTHX_ name, iv_return);
- break;
- case 21:
- return constant_21 (aTHX_ name, iv_return);
- break;
- case 22:
- return constant_22 (aTHX_ name, iv_return);
- break;
- case 23:
- return constant_23 (aTHX_ name, iv_return);
- break;
- case 24:
- return constant_24 (aTHX_ name, iv_return);
- break;
- case 25:
- /* Names all of length 25. */
- /* LDNS_NSEC3_MAX_ITERATIONS LDNS_STATUS_SYNTAX_ORIGIN */
- /* Offset 6 gives the best switch position. */
- switch (name[6]) {
- case 'S':
- if (memEQ(name, "LDNS_NSEC3_MAX_ITERATIONS", 25)) {
- /* ^ */
-#ifdef LDNS_NSEC3_MAX_ITERATIONS
- *iv_return = LDNS_NSEC3_MAX_ITERATIONS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ORIGIN", 25)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ORIGIN;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 26:
- return constant_26 (aTHX_ name, iv_return);
- break;
- case 27:
- return constant_27 (aTHX_ name, iv_return);
- break;
- case 28:
- return constant_28 (aTHX_ name, iv_return);
- break;
- case 29:
- return constant_29 (aTHX_ name, iv_return);
- break;
- case 30:
- return constant_30 (aTHX_ name, iv_return);
- break;
- case 31:
- /* Names all of length 31. */
- /* LDNS_STATUS_CRYPTO_UNKNOWN_ALGO LDNS_STATUS_DOMAINNAME_OVERFLOW */
- /* Offset 12 gives the best switch position. */
- switch (name[12]) {
- case 'C':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", 31)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_UNKNOWN_ALGO;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_STATUS_DOMAINNAME_OVERFLOW", 31)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DOMAINNAME_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 32:
- return constant_32 (aTHX_ name, iv_return);
- break;
- case 33:
- if (memEQ(name, "LDNS_STATUS_ENGINE_KEY_NOT_LOADED", 33)) {
- *iv_return = LDNS_STATUS_ENGINE_KEY_NOT_LOADED;
- return PERL_constant_ISIV;
- }
- break;
- case 34:
- /* Names all of length 34. */
- /* LDNS_STATUS_WIRE_INCOMPLETE_ANSWER LDNS_STATUS_WIRE_INCOMPLETE_HEADER */
- /* Offset 28 gives the best switch position. */
- switch (name[28]) {
- case 'A':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", 34)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_ANSWER;
- return PERL_constant_ISIV;
- }
- break;
- case 'H':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_HEADER", 34)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_HEADER;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 35:
- return constant_35 (aTHX_ name, iv_return);
- break;
- case 36:
- return constant_36 (aTHX_ name, iv_return);
- break;
- case 37:
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", 37)) {
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY;
- return PERL_constant_ISIV;
- }
- break;
- case 38:
- return constant_38 (aTHX_ name, iv_return);
- break;
- case 43:
- if (memEQ(name, "LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", 43)) {
- *iv_return = LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND;
- return PERL_constant_ISIV;
- }
- break;
- case 44:
- /* Names all of length 44. */
- /* LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY
- LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED */
- /* Offset 12 gives the best switch position. */
- switch (name[12]) {
- case 'C':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", 44)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", 44)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 46:
- if (memEQ(name, "LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", 46)) {
- *iv_return = LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
diff --git a/contrib/DNS-LDNS/const-xs.inc b/contrib/DNS-LDNS/const-xs.inc
deleted file mode 100644
index 1738df2243a7..000000000000
--- a/contrib/DNS-LDNS/const-xs.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-void
-constant(sv)
- PREINIT:
-#ifdef dXSTARG
- dXSTARG; /* Faster if we have it. */
-#else
- dTARGET;
-#endif
- STRLEN len;
- int type;
- IV iv;
- /* NV nv; Uncomment this if you need to return NVs */
- /* const char *pv; Uncomment this if you need to return PVs */
- INPUT:
- SV * sv;
- const char * s = SvPV(sv, len);
- PPCODE:
- /* Change this to constant(aTHX_ s, len, &iv, &nv);
- if you need to return both NVs and IVs */
- type = constant(aTHX_ s, len, &iv);
- /* Return 1 or 2 items. First is error message, or undef if no error.
- Second, if present, is found value */
- switch (type) {
- case PERL_constant_NOTFOUND:
- sv =
- sv_2mortal(newSVpvf("%s is not a valid LDNS macro", s));
- PUSHs(sv);
- break;
- case PERL_constant_NOTDEF:
- sv = sv_2mortal(newSVpvf(
- "Your vendor has not defined LDNS macro %s, used",
- s));
- PUSHs(sv);
- break;
- case PERL_constant_ISIV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHi(iv);
- break;
- /* Uncomment this if you need to return NOs
- case PERL_constant_ISNO:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(&PL_sv_no);
- break; */
- /* Uncomment this if you need to return NVs
- case PERL_constant_ISNV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHn(nv);
- break; */
- /* Uncomment this if you need to return PVs
- case PERL_constant_ISPV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHp(pv, strlen(pv));
- break; */
- /* Uncomment this if you need to return PVNs
- case PERL_constant_ISPVN:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHp(pv, iv);
- break; */
- /* Uncomment this if you need to return SVs
- case PERL_constant_ISSV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(sv);
- break; */
- /* Uncomment this if you need to return UNDEFs
- case PERL_constant_ISUNDEF:
- break; */
- /* Uncomment this if you need to return UVs
- case PERL_constant_ISUV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHu((UV)iv);
- break; */
- /* Uncomment this if you need to return YESs
- case PERL_constant_ISYES:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(&PL_sv_yes);
- break; */
- default:
- sv = sv_2mortal(newSVpvf(
- "Unexpected return type %d while processing LDNS macro %s, used",
- type, s));
- PUSHs(sv);
- }
diff --git a/contrib/DNS-LDNS/constants.PL b/contrib/DNS-LDNS/constants.PL
new file mode 100644
index 000000000000..78885aaf5718
--- /dev/null
+++ b/contrib/DNS-LDNS/constants.PL
@@ -0,0 +1,280 @@
+use ExtUtils::Constant;
+
+# If you edit these definitions to change the constants used by this module,
+# you will need to use the generated const-c.inc and const-xs.inc
+# files to replace their "fallback" counterparts before distributing your
+# changes.
+my @names = (qw(LDNS_AA LDNS_AD LDNS_CD LDNS_DEFAULT_EXP_TIME
+ LDNS_DEFAULT_TTL LDNS_DNSSEC_KEYPROTO LDNS_IP4ADDRLEN
+ LDNS_IP6ADDRLEN LDNS_KEY_REVOKE_KEY LDNS_KEY_SEP_KEY
+ LDNS_KEY_ZONE_KEY LDNS_MAX_DOMAINLEN LDNS_MAX_KEYLEN
+ LDNS_MAX_LABELLEN LDNS_MAX_PACKETLEN LDNS_MAX_POINTERS
+ LDNS_MAX_RDFLEN LDNS_NSEC3_MAX_ITERATIONS
+ LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_PORT LDNS_QR LDNS_RA LDNS_RD
+ LDNS_RDATA_FIELD_DESCRIPTORS_COMMON LDNS_RDF_SIZE_16BYTES
+ LDNS_RDF_SIZE_6BYTES LDNS_RDF_SIZE_BYTE
+ LDNS_RDF_SIZE_DOUBLEWORD LDNS_RDF_SIZE_WORD LDNS_RESOLV_ANCHOR
+ LDNS_RESOLV_DEFDOMAIN LDNS_RESOLV_INET LDNS_RESOLV_INET6
+ LDNS_RESOLV_INETANY LDNS_RESOLV_KEYWORD LDNS_RESOLV_KEYWORDS
+ LDNS_RESOLV_NAMESERVER LDNS_RESOLV_OPTIONS LDNS_RESOLV_RTT_INF
+ LDNS_RESOLV_RTT_MIN LDNS_RESOLV_SEARCH LDNS_RESOLV_SORTLIST
+ LDNS_RR_OVERHEAD LDNS_SIGNATURE_LEAVE_ADD_NEW
+ LDNS_SIGNATURE_LEAVE_NO_ADD LDNS_SIGNATURE_REMOVE_ADD_NEW
+ LDNS_SIGNATURE_REMOVE_NO_ADD LDNS_TC),
+ {name=>"LDNS_CERT_ACPKIX", macro=>"1"},
+ {name=>"LDNS_CERT_IACPKIX", macro=>"1"},
+ {name=>"LDNS_CERT_IPGP", macro=>"1"},
+ {name=>"LDNS_CERT_IPKIX", macro=>"1"},
+ {name=>"LDNS_CERT_ISPKI", macro=>"1"},
+ {name=>"LDNS_CERT_OID", macro=>"1"},
+ {name=>"LDNS_CERT_PGP", macro=>"1"},
+ {name=>"LDNS_CERT_PKIX", macro=>"1"},
+ {name=>"LDNS_CERT_SPKI", macro=>"1"},
+ {name=>"LDNS_CERT_URI", macro=>"1"},
+ {name=>"LDNS_DH", macro=>"1"},
+ {name=>"LDNS_DSA", macro=>"1"},
+ {name=>"LDNS_DSA_NSEC3", macro=>"1"},
+ {name=>"LDNS_ECC", macro=>"1"},
+ {name=>"LDNS_ECC_GOST", macro=>"1"},
+ {name=>"LDNS_HASH_GOST", macro=>"1"},
+ {name=>"LDNS_PACKET_ANSWER", macro=>"1"},
+ {name=>"LDNS_PACKET_IQUERY", macro=>"1"},
+ {name=>"LDNS_PACKET_NODATA", macro=>"1"},
+ {name=>"LDNS_PACKET_NOTIFY", macro=>"1"},
+ {name=>"LDNS_PACKET_NXDOMAIN", macro=>"1"},
+ {name=>"LDNS_PACKET_QUERY", macro=>"1"},
+ {name=>"LDNS_PACKET_QUESTION", macro=>"1"},
+ {name=>"LDNS_PACKET_REFERRAL", macro=>"1"},
+ {name=>"LDNS_PACKET_STATUS", macro=>"1"},
+ {name=>"LDNS_PACKET_UNKNOWN", macro=>"1"},
+ {name=>"LDNS_PACKET_UPDATE", macro=>"1"},
+ {name=>"LDNS_PRIVATEDNS", macro=>"1"},
+ {name=>"LDNS_PRIVATEOID", macro=>"1"},
+ {name=>"LDNS_RCODE_FORMERR", macro=>"1"},
+ {name=>"LDNS_RCODE_NOERROR", macro=>"1"},
+ {name=>"LDNS_RCODE_NOTAUTH", macro=>"1"},
+ {name=>"LDNS_RCODE_NOTIMPL", macro=>"1"},
+ {name=>"LDNS_RCODE_NOTZONE", macro=>"1"},
+ {name=>"LDNS_RCODE_NXDOMAIN", macro=>"1"},
+ {name=>"LDNS_RCODE_NXRRSET", macro=>"1"},
+ {name=>"LDNS_RCODE_REFUSED", macro=>"1"},
+ {name=>"LDNS_RCODE_SERVFAIL", macro=>"1"},
+ {name=>"LDNS_RCODE_YXDOMAIN", macro=>"1"},
+ {name=>"LDNS_RCODE_YXRRSET", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_A", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_AAAA", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_ALG", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_APL", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_ATMA", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_B32_EXT", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_B64", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_CERT_ALG", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_CLASS", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_DNAME", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_HEX", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT16", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT16_DATA", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT32", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_INT8", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_IPSECKEY", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_LOC", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NONE", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSAP", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSEC", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_NSEC3_SALT", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_PERIOD", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_SERVICE", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_STR", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_TIME", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_HIP", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_TSIGTIME", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_TYPE", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_UNKNOWN", macro=>"1"},
+ {name=>"LDNS_RDF_TYPE_WKS", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_ANY", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_CH", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_COUNT", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_FIRST", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_HS", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_IN", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_LAST", macro=>"1"},
+ {name=>"LDNS_RR_CLASS_NONE", macro=>"1"},
+ {name=>"LDNS_RR_COMPRESS", macro=>"1"},
+ {name=>"LDNS_RR_NO_COMPRESS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_A", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_A6", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_AAAA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_AFSDB", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_ANY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_APL", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_ATMA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_AXFR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_CERT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_CNAME", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_COUNT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DHCID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DLV", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DNAME", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DNSKEY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_DS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_EID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_FIRST", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_GID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_GPOS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_HINFO", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_IPSECKEY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_ISDN", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_IXFR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_KEY", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_KX", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_LAST", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_LOC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MAILA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MAILB", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MB", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MD", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MF", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MINFO", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_MX", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NAPTR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NIMLOC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSAP", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSAP_PTR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC3", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC3PARAM", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NSEC3PARAMS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NULL", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_NXT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_OPT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_PTR", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_PX", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_RP", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_RRSIG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_RT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SIG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SINK", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SOA", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SPF", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SRV", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_SSHFP", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_TALINK", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_TSIG", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_TXT", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_UID", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_UINFO", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_UNSPEC", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_WKS", macro=>"1"},
+ {name=>"LDNS_RR_TYPE_X25", macro=>"1"},
+ {name=>"LDNS_RSAMD5", macro=>"1"},
+ {name=>"LDNS_RSASHA1", macro=>"1"},
+ {name=>"LDNS_RSASHA1_NSEC3", macro=>"1"},
+ {name=>"LDNS_RSASHA256", macro=>"1"},
+ {name=>"LDNS_RSASHA512", macro=>"1"},
+ {name=>"LDNS_SECTION_ADDITIONAL", macro=>"1"},
+ {name=>"LDNS_SECTION_ANSWER", macro=>"1"},
+ {name=>"LDNS_SECTION_ANY", macro=>"1"},
+ {name=>"LDNS_SECTION_ANY_NOQUESTION", macro=>"1"},
+ {name=>"LDNS_SECTION_AUTHORITY", macro=>"1"},
+ {name=>"LDNS_SECTION_QUESTION", macro=>"1"},
+ {name=>"LDNS_SHA1", macro=>"1"},
+ {name=>"LDNS_SHA256", macro=>"1"},
+ {name=>"LDNS_SIGN_DSA", macro=>"1"},
+ {name=>"LDNS_SIGN_DSA_NSEC3", macro=>"1"},
+ {name=>"LDNS_SIGN_ECC_GOST", macro=>"1"},
+ {name=>"LDNS_SIGN_HMACSHA1", macro=>"1"},
+ {name=>"LDNS_SIGN_HMACSHA256", macro=>"1"},
+ {name=>"LDNS_SIGN_RSAMD5", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA1", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA1_NSEC3", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA256", macro=>"1"},
+ {name=>"LDNS_SIGN_RSASHA512", macro=>"1"},
+ {name=>"LDNS_STATUS_ADDRESS_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_CERT_BAD_ALGORITHM", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_BOGUS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_DNSKEY", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_DS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_RRSIG", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_SIG_EXPIRED", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_TSIG_BOGUS", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_TSIG_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", macro=>"1"},
+ {name=>"LDNS_STATUS_CRYPTO_VALIDATED", macro=>"1"},
+ {name=>"LDNS_STATUS_DDD_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", macro=>"1"},
+ {name=>"LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", macro=>"1"},
+ {name=>"LDNS_STATUS_DOMAINNAME_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_DOMAINNAME_UNDERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_EMPTY_LABEL", macro=>"1"},
+ {name=>"LDNS_STATUS_ENGINE_KEY_NOT_LOADED", macro=>"1"},
+ {name=>"LDNS_STATUS_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_FILE_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_INTERNAL_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_B32_EXT", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_B64", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_HEX", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_INT", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_IP4", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_IP6", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_POINTER", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_STR", macro=>"1"},
+ {name=>"LDNS_STATUS_INVALID_TIME", macro=>"1"},
+ {name=>"LDNS_STATUS_LABEL_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_MEM_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", macro=>"1"},
+ {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", macro=>"1"},
+ {name=>"LDNS_STATUS_NETWORK_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_NOT_IMPL", macro=>"1"},
+ {name=>"LDNS_STATUS_NO_DATA", macro=>"1"},
+ {name=>"LDNS_STATUS_NSEC3_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_NULL", macro=>"1"},
+ {name=>"LDNS_STATUS_OK", macro=>"1"},
+ {name=>"LDNS_STATUS_PACKET_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_RES_NO_NS", macro=>"1"},
+ {name=>"LDNS_STATUS_RES_QUERY", macro=>"1"},
+ {name=>"LDNS_STATUS_SOCKET_ERROR", macro=>"1"},
+ {name=>"LDNS_STATUS_SSL_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ALG_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_BAD_ESCAPE", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_CLASS_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_DNAME_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_EMPTY", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_INCLUDE", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_KEYWORD_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_ORIGIN", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_RDATA_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_TTL", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_TTL_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_TYPE_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_SYNTAX_VERSION_ERR", macro=>"1"},
+ {name=>"LDNS_STATUS_UNKNOWN_INET", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_HEADER", macro=>"1"},
+ {name=>"LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", macro=>"1"});
+ExtUtils::Constant::WriteConstants(
+ NAME => 'LDNS',
+ NAMES => \@names,
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c.inc',
+ XS_FILE => 'const-xs.inc',
+);
diff --git a/contrib/DNS-LDNS/dist.ini b/contrib/DNS-LDNS/dist.ini
new file mode 100644
index 000000000000..553fb8633424
--- /dev/null
+++ b/contrib/DNS-LDNS/dist.ini
@@ -0,0 +1,18 @@
+name = DNS-LDNS
+author = Erik Ostlyngen <erik@uninett.no>
+copyright_holder = UNINETT Norid AS
+copyright_year = 2013
+license = None
+version = 0.61
+
+[AutoPrereqs]
+[GatherDir]
+[MetaYAML]
+[MakeMaker::Awesome]
+WriteMakefile_arg = LIBS => ['-lldns']
+footer_file = constants.PL
+[CheckLib]
+lib = ldns
+header = ldns/ldns.h
+[License]
+[PruneCruft]
diff --git a/contrib/DNS-LDNS/fallback/const-c.inc b/contrib/DNS-LDNS/fallback/const-c.inc
deleted file mode 100644
index 6456baa182b2..000000000000
--- a/contrib/DNS-LDNS/fallback/const-c.inc
+++ /dev/null
@@ -1,2798 +0,0 @@
-#define PERL_constant_NOTFOUND 1
-#define PERL_constant_NOTDEF 2
-#define PERL_constant_ISIV 3
-#define PERL_constant_ISNO 4
-#define PERL_constant_ISNV 5
-#define PERL_constant_ISPV 6
-#define PERL_constant_ISPVN 7
-#define PERL_constant_ISSV 8
-#define PERL_constant_ISUNDEF 9
-#define PERL_constant_ISUV 10
-#define PERL_constant_ISYES 11
-
-#ifndef NVTYPE
-typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
-#endif
-#ifndef aTHX_
-#define aTHX_ /* 5.6 or later define this for threading support. */
-#endif
-#ifndef pTHX_
-#define pTHX_ /* 5.6 or later define this for threading support. */
-#endif
-
-static int
-constant_7 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_AA LDNS_AD LDNS_CD LDNS_DH LDNS_QR LDNS_RA LDNS_RD LDNS_TC */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'A':
- if (memEQ(name, "LDNS_AA", 7)) {
- /* ^ */
-#ifdef LDNS_AA
- *iv_return = LDNS_AA;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_AD", 7)) {
- /* ^ */
-#ifdef LDNS_AD
- *iv_return = LDNS_AD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_CD", 7)) {
- /* ^ */
-#ifdef LDNS_CD
- *iv_return = LDNS_CD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_DH", 7)) {
- /* ^ */
- *iv_return = LDNS_DH;
- return PERL_constant_ISIV;
- }
- break;
- case 'Q':
- if (memEQ(name, "LDNS_QR", 7)) {
- /* ^ */
-#ifdef LDNS_QR
- *iv_return = LDNS_QR;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RA", 7)) {
- /* ^ */
-#ifdef LDNS_RA
- *iv_return = LDNS_RA;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RD", 7)) {
- /* ^ */
-#ifdef LDNS_RD
- *iv_return = LDNS_RD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_TC", 7)) {
- /* ^ */
-#ifdef LDNS_TC
- *iv_return = LDNS_TC;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_11 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RSAMD5 LDNS_SHA256 LDNS_SHA384 */
- /* Offset 10 gives the best switch position. */
- switch (name[10]) {
- case '4':
- if (memEQ(name, "LDNS_SHA38", 10)) {
- /* 4 */
- *iv_return = LDNS_SHA384;
- return PERL_constant_ISIV;
- }
- break;
- case '5':
- if (memEQ(name, "LDNS_RSAMD", 10)) {
- /* 5 */
- *iv_return = LDNS_RSAMD5;
- return PERL_constant_ISIV;
- }
- break;
- case '6':
- if (memEQ(name, "LDNS_SHA25", 10)) {
- /* 6 */
- *iv_return = LDNS_SHA256;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_13 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_OID LDNS_CERT_PGP LDNS_CERT_URI LDNS_ECC_GOST LDNS_SIGN_DSA */
- /* Offset 12 gives the best switch position. */
- switch (name[12]) {
- case 'A':
- if (memEQ(name, "LDNS_SIGN_DS", 12)) {
- /* A */
- *iv_return = LDNS_SIGN_DSA;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_CERT_OI", 12)) {
- /* D */
- *iv_return = LDNS_CERT_OID;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_CERT_UR", 12)) {
- /* I */
- *iv_return = LDNS_CERT_URI;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_CERT_PG", 12)) {
- /* P */
- *iv_return = LDNS_CERT_PGP;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_ECC_GOS", 12)) {
- /* T */
- *iv_return = LDNS_ECC_GOST;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_14 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_IPGP LDNS_CERT_PKIX LDNS_CERT_SPKI LDNS_DSA_NSEC3 LDNS_HASH_GOST
- LDNS_RR_TYPE_A LDNS_RSASHA256 LDNS_RSASHA512 LDNS_STATUS_OK */
- /* Offset 13 gives the best switch position. */
- switch (name[13]) {
- case '2':
- if (memEQ(name, "LDNS_RSASHA51", 13)) {
- /* 2 */
- *iv_return = LDNS_RSASHA512;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_DSA_NSEC", 13)) {
- /* 3 */
- *iv_return = LDNS_DSA_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case '6':
- if (memEQ(name, "LDNS_RSASHA25", 13)) {
- /* 6 */
- *iv_return = LDNS_RSASHA256;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_", 13)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_A;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_CERT_SPK", 13)) {
- /* I */
- *iv_return = LDNS_CERT_SPKI;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_STATUS_O", 13)) {
- /* K */
- *iv_return = LDNS_STATUS_OK;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_CERT_IPG", 13)) {
- /* P */
- *iv_return = LDNS_CERT_IPGP;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_HASH_GOS", 13)) {
- /* T */
- *iv_return = LDNS_HASH_GOST;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_CERT_PKI", 13)) {
- /* X */
- *iv_return = LDNS_CERT_PKIX;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_15 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_IPKIX LDNS_CERT_ISPKI LDNS_IP4ADDRLEN LDNS_IP6ADDRLEN
- LDNS_MAX_RDFLEN LDNS_PRIVATEDNS LDNS_PRIVATEOID LDNS_RDF_TYPE_A
- LDNS_RR_TYPE_A6 LDNS_RR_TYPE_DS LDNS_RR_TYPE_KX LDNS_RR_TYPE_MB
- LDNS_RR_TYPE_MD LDNS_RR_TYPE_MF LDNS_RR_TYPE_MG LDNS_RR_TYPE_MR
- LDNS_RR_TYPE_MX LDNS_RR_TYPE_NS LDNS_RR_TYPE_PX LDNS_RR_TYPE_RP
- LDNS_RR_TYPE_RT LDNS_STATUS_ERR */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case '6':
- if (memEQ(name, "LDNS_RR_TYPE_A", 14)) {
- /* 6 */
- *iv_return = LDNS_RR_TYPE_A6;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RDF_TYPE_", 14)) {
- /* A */
- *iv_return = LDNS_RDF_TYPE_A;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* B */
- *iv_return = LDNS_RR_TYPE_MB;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_PRIVATEOI", 14)) {
- /* D */
- *iv_return = LDNS_PRIVATEOID;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* D */
- *iv_return = LDNS_RR_TYPE_MD;
- return PERL_constant_ISIV;
- }
- break;
- case 'F':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* F */
- *iv_return = LDNS_RR_TYPE_MF;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* G */
- *iv_return = LDNS_RR_TYPE_MG;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_CERT_ISPK", 14)) {
- /* I */
- *iv_return = LDNS_CERT_ISPKI;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_IP4ADDRLE", 14)) {
- /* N */
-#ifdef LDNS_IP4ADDRLEN
- *iv_return = LDNS_IP4ADDRLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_IP6ADDRLE", 14)) {
- /* N */
-#ifdef LDNS_IP6ADDRLEN
- *iv_return = LDNS_IP6ADDRLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_MAX_RDFLE", 14)) {
- /* N */
-#ifdef LDNS_MAX_RDFLEN
- *iv_return = LDNS_MAX_RDFLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_R", 14)) {
- /* P */
- *iv_return = LDNS_RR_TYPE_RP;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_MR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_ER", 14)) {
- /* R */
- *iv_return = LDNS_STATUS_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_PRIVATEDN", 14)) {
- /* S */
- *iv_return = LDNS_PRIVATEDNS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_D", 14)) {
- /* S */
- *iv_return = LDNS_RR_TYPE_DS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_N", 14)) {
- /* S */
- *iv_return = LDNS_RR_TYPE_NS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RR_TYPE_R", 14)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_RT;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_CERT_IPKI", 14)) {
- /* X */
- *iv_return = LDNS_CERT_IPKIX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_K", 14)) {
- /* X */
- *iv_return = LDNS_RR_TYPE_KX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_M", 14)) {
- /* X */
- *iv_return = LDNS_RR_TYPE_MX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_P", 14)) {
- /* X */
- *iv_return = LDNS_RR_TYPE_PX;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_16 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_ACPKIX LDNS_DEFAULT_TTL LDNS_KEY_SEP_KEY LDNS_RESOLV_INET
- LDNS_RR_CLASS_CH LDNS_RR_CLASS_HS LDNS_RR_CLASS_IN LDNS_RR_COMPRESS
- LDNS_RR_OVERHEAD LDNS_RR_TYPE_ANY LDNS_RR_TYPE_APL LDNS_RR_TYPE_DLV
- LDNS_RR_TYPE_EID LDNS_RR_TYPE_GID LDNS_RR_TYPE_KEY LDNS_RR_TYPE_LOC
- LDNS_RR_TYPE_NXT LDNS_RR_TYPE_OPT LDNS_RR_TYPE_PTR LDNS_RR_TYPE_SIG
- LDNS_RR_TYPE_SOA LDNS_RR_TYPE_SPF LDNS_RR_TYPE_SRV LDNS_RR_TYPE_TXT
- LDNS_RR_TYPE_UID LDNS_RR_TYPE_WKS LDNS_RR_TYPE_X25 LDNS_SECTION_ANY
- LDNS_SIGN_RSAMD5 LDNS_STATUS_NULL */
- /* Offset 13 gives the best switch position. */
- switch (name[13]) {
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_ANY", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_ANY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_APL", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_APL;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SECTION_ANY", 16)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ANY;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RR_TYPE_DLV", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_DLV;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_RR_COMPRESS", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_COMPRESS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_OVERHEAD", 16)) {
- /* ^ */
-#ifdef LDNS_RR_OVERHEAD
- *iv_return = LDNS_RR_OVERHEAD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_EID", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_EID;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RR_TYPE_GID", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_GID;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_CERT_ACPKIX", 16)) {
- /* ^ */
- *iv_return = LDNS_CERT_ACPKIX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_KEY_SEP_KEY", 16)) {
- /* ^ */
-#ifdef LDNS_KEY_SEP_KEY
- *iv_return = LDNS_KEY_SEP_KEY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_KEY", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_KEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_RR_TYPE_LOC", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_LOC;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_SIGN_RSAMD5", 16)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSAMD5;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_RESOLV_INET", 16)) {
- /* ^ */
-#ifdef LDNS_RESOLV_INET
- *iv_return = LDNS_RESOLV_INET;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_NXT", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NXT;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RR_TYPE_OPT", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_OPT;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_PTR", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_PTR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_RR_TYPE_SIG", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SIG;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SOA", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SOA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SPF", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SPF;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SRV", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_SRV;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_DEFAULT_TTL", 16)) {
- /* ^ */
-#ifdef LDNS_DEFAULT_TTL
- *iv_return = LDNS_DEFAULT_TTL;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_TXT", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_TXT;
- return PERL_constant_ISIV;
- }
- break;
- case 'U':
- if (memEQ(name, "LDNS_RR_TYPE_UID", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_UID;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_NULL", 16)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NULL;
- return PERL_constant_ISIV;
- }
- break;
- case 'W':
- if (memEQ(name, "LDNS_RR_TYPE_WKS", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_WKS;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_RR_TYPE_X25", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_X25;
- return PERL_constant_ISIV;
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_RR_CLASS_CH", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_CH;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_HS", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_HS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_IN", 16)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_IN;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_17 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_CERT_IACPKIX LDNS_KEY_ZONE_KEY LDNS_MAX_LABELLEN LDNS_MAX_POINTERS
- LDNS_PACKET_QUERY LDNS_RDF_TYPE_ALG LDNS_RDF_TYPE_APL LDNS_RDF_TYPE_B64
- LDNS_RDF_TYPE_HEX LDNS_RDF_TYPE_LOC LDNS_RDF_TYPE_STR LDNS_RDF_TYPE_WKS
- LDNS_RESOLV_INET6 LDNS_RR_CLASS_ANY LDNS_RR_TYPE_AAAA LDNS_RR_TYPE_ATMA
- LDNS_RR_TYPE_AXFR LDNS_RR_TYPE_CERT LDNS_RR_TYPE_GPOS LDNS_RR_TYPE_ISDN
- LDNS_RR_TYPE_IXFR LDNS_RR_TYPE_LAST LDNS_RR_TYPE_NSAP LDNS_RR_TYPE_NSEC
- LDNS_RR_TYPE_NULL LDNS_RR_TYPE_SINK LDNS_RR_TYPE_TSIG LDNS_SIGN_RSASHA1 */
- /* Offset 16 gives the best switch position. */
- switch (name[16]) {
- case '1':
- if (memEQ(name, "LDNS_SIGN_RSASHA", 16)) {
- /* 1 */
- *iv_return = LDNS_SIGN_RSASHA1;
- return PERL_constant_ISIV;
- }
- break;
- case '4':
- if (memEQ(name, "LDNS_RDF_TYPE_B6", 16)) {
- /* 4 */
- *iv_return = LDNS_RDF_TYPE_B64;
- return PERL_constant_ISIV;
- }
- break;
- case '6':
- if (memEQ(name, "LDNS_RESOLV_INET", 16)) {
- /* 6 */
-#ifdef LDNS_RESOLV_INET6
- *iv_return = LDNS_RESOLV_INET6;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_AAA", 16)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_AAAA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_ATM", 16)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_ATMA;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_LO", 16)) {
- /* C */
- *iv_return = LDNS_RDF_TYPE_LOC;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NSE", 16)) {
- /* C */
- *iv_return = LDNS_RR_TYPE_NSEC;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RDF_TYPE_AL", 16)) {
- /* G */
- *iv_return = LDNS_RDF_TYPE_ALG;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_TSI", 16)) {
- /* G */
- *iv_return = LDNS_RR_TYPE_TSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_RR_TYPE_SIN", 16)) {
- /* K */
- *iv_return = LDNS_RR_TYPE_SINK;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_RDF_TYPE_AP", 16)) {
- /* L */
- *iv_return = LDNS_RDF_TYPE_APL;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NUL", 16)) {
- /* L */
- *iv_return = LDNS_RR_TYPE_NULL;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_MAX_LABELLE", 16)) {
- /* N */
-#ifdef LDNS_MAX_LABELLEN
- *iv_return = LDNS_MAX_LABELLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_ISD", 16)) {
- /* N */
- *iv_return = LDNS_RR_TYPE_ISDN;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_NSA", 16)) {
- /* P */
- *iv_return = LDNS_RR_TYPE_NSAP;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RDF_TYPE_ST", 16)) {
- /* R */
- *iv_return = LDNS_RDF_TYPE_STR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_AXF", 16)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_AXFR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_IXF", 16)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_IXFR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_MAX_POINTER", 16)) {
- /* S */
-#ifdef LDNS_MAX_POINTERS
- *iv_return = LDNS_MAX_POINTERS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RDF_TYPE_WK", 16)) {
- /* S */
- *iv_return = LDNS_RDF_TYPE_WKS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_GPO", 16)) {
- /* S */
- *iv_return = LDNS_RR_TYPE_GPOS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RR_TYPE_CER", 16)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_CERT;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_LAS", 16)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_LAST;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_CERT_IACPKI", 16)) {
- /* X */
- *iv_return = LDNS_CERT_IACPKIX;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_HE", 16)) {
- /* X */
- *iv_return = LDNS_RDF_TYPE_HEX;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_KEY_ZONE_KE", 16)) {
- /* Y */
-#ifdef LDNS_KEY_ZONE_KEY
- *iv_return = LDNS_KEY_ZONE_KEY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_PACKET_QUER", 16)) {
- /* Y */
- *iv_return = LDNS_PACKET_QUERY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_AN", 16)) {
- /* Y */
- *iv_return = LDNS_RR_CLASS_ANY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_18 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_MAX_DOMAINLEN LDNS_MAX_PACKETLEN LDNS_PACKET_ANSWER
- LDNS_PACKET_IQUERY LDNS_PACKET_NODATA LDNS_PACKET_NOTIFY
- LDNS_PACKET_STATUS LDNS_PACKET_UPDATE LDNS_RCODE_FORMERR
- LDNS_RCODE_NOERROR LDNS_RCODE_NOTAUTH LDNS_RCODE_NOTIMPL
- LDNS_RCODE_NOTZONE LDNS_RCODE_NXRRSET LDNS_RCODE_REFUSED
- LDNS_RCODE_YXRRSET LDNS_RDF_SIZE_BYTE LDNS_RDF_SIZE_WORD
- LDNS_RDF_TYPE_AAAA LDNS_RDF_TYPE_ATMA LDNS_RDF_TYPE_INT8
- LDNS_RDF_TYPE_NONE LDNS_RDF_TYPE_NSAP LDNS_RDF_TYPE_NSEC
- LDNS_RDF_TYPE_TIME LDNS_RDF_TYPE_HIP LDNS_RDF_TYPE_TYPE
- LDNS_RESOLV_ANCHOR LDNS_RESOLV_SEARCH LDNS_RR_CLASS_LAST
- LDNS_RR_CLASS_NONE LDNS_RR_TYPE_AFSDB LDNS_RR_TYPE_CNAME
- LDNS_RR_TYPE_COUNT LDNS_RR_TYPE_DHCID LDNS_RR_TYPE_DNAME
- LDNS_RR_TYPE_FIRST LDNS_RR_TYPE_HINFO LDNS_RR_TYPE_MAILA
- LDNS_RR_TYPE_MAILB LDNS_RR_TYPE_MINFO LDNS_RR_TYPE_NAPTR
- LDNS_RR_TYPE_NSEC3 LDNS_RR_TYPE_RRSIG LDNS_RR_TYPE_SSHFP
- LDNS_RR_TYPE_UINFO LDNS_RSASHA1_NSEC3 LDNS_SIGN_ECC_GOST
- LDNS_SIGN_HMACSHA1 */
- /* Offset 17 gives the best switch position. */
- switch (name[17]) {
- case '1':
- if (memEQ(name, "LDNS_SIGN_HMACSHA", 17)) {
- /* 1 */
- *iv_return = LDNS_SIGN_HMACSHA1;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_RR_TYPE_NSEC", 17)) {
- /* 3 */
- *iv_return = LDNS_RR_TYPE_NSEC3;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RSASHA1_NSEC", 17)) {
- /* 3 */
- *iv_return = LDNS_RSASHA1_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case '8':
- if (memEQ(name, "LDNS_RDF_TYPE_INT", 17)) {
- /* 8 */
- *iv_return = LDNS_RDF_TYPE_INT8;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_PACKET_NODAT", 17)) {
- /* A */
- *iv_return = LDNS_PACKET_NODATA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_AAA", 17)) {
- /* A */
- *iv_return = LDNS_RDF_TYPE_AAAA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_ATM", 17)) {
- /* A */
- *iv_return = LDNS_RDF_TYPE_ATMA;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_MAIL", 17)) {
- /* A */
- *iv_return = LDNS_RR_TYPE_MAILA;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RR_TYPE_AFSD", 17)) {
- /* B */
- *iv_return = LDNS_RR_TYPE_AFSDB;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_MAIL", 17)) {
- /* B */
- *iv_return = LDNS_RR_TYPE_MAILB;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_NSE", 17)) {
- /* C */
- *iv_return = LDNS_RDF_TYPE_NSEC;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RCODE_REFUSE", 17)) {
- /* D */
- *iv_return = LDNS_RCODE_REFUSED;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_SIZE_WOR", 17)) {
- /* D */
-#ifdef LDNS_RDF_SIZE_WORD
- *iv_return = LDNS_RDF_SIZE_WORD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_DHCI", 17)) {
- /* D */
- *iv_return = LDNS_RR_TYPE_DHCID;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_PACKET_UPDAT", 17)) {
- /* E */
- *iv_return = LDNS_PACKET_UPDATE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_NOTZON", 17)) {
- /* E */
- *iv_return = LDNS_RCODE_NOTZONE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_SIZE_BYT", 17)) {
- /* E */
-#ifdef LDNS_RDF_SIZE_BYTE
- *iv_return = LDNS_RDF_SIZE_BYTE;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RDF_TYPE_NON", 17)) {
- /* E */
- *iv_return = LDNS_RDF_TYPE_NONE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_TIM", 17)) {
- /* E */
- *iv_return = LDNS_RDF_TYPE_TIME;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_TYP", 17)) {
- /* E */
- *iv_return = LDNS_RDF_TYPE_TYPE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_NON", 17)) {
- /* E */
- *iv_return = LDNS_RR_CLASS_NONE;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_CNAM", 17)) {
- /* E */
- *iv_return = LDNS_RR_TYPE_CNAME;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_DNAM", 17)) {
- /* E */
- *iv_return = LDNS_RR_TYPE_DNAME;
- return PERL_constant_ISIV;
- }
- break;
- case 'G':
- if (memEQ(name, "LDNS_RDF_TYPE_HIP", 17)) {
- /* G */
- *iv_return = LDNS_RDF_TYPE_HIP;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_RRSI", 17)) {
- /* G */
- *iv_return = LDNS_RR_TYPE_RRSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'H':
- if (memEQ(name, "LDNS_RCODE_NOTAUT", 17)) {
- /* H */
- *iv_return = LDNS_RCODE_NOTAUTH;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RESOLV_SEARC", 17)) {
- /* H */
-#ifdef LDNS_RESOLV_SEARCH
- *iv_return = LDNS_RESOLV_SEARCH;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_RCODE_NOTIMP", 17)) {
- /* L */
- *iv_return = LDNS_RCODE_NOTIMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_MAX_DOMAINLE", 17)) {
- /* N */
-#ifdef LDNS_MAX_DOMAINLEN
- *iv_return = LDNS_MAX_DOMAINLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_MAX_PACKETLE", 17)) {
- /* N */
-#ifdef LDNS_MAX_PACKETLEN
- *iv_return = LDNS_MAX_PACKETLEN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RR_TYPE_HINF", 17)) {
- /* O */
- *iv_return = LDNS_RR_TYPE_HINFO;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_MINF", 17)) {
- /* O */
- *iv_return = LDNS_RR_TYPE_MINFO;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_UINF", 17)) {
- /* O */
- *iv_return = LDNS_RR_TYPE_UINFO;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RDF_TYPE_NSA", 17)) {
- /* P */
- *iv_return = LDNS_RDF_TYPE_NSAP;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_SSHF", 17)) {
- /* P */
- *iv_return = LDNS_RR_TYPE_SSHFP;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_PACKET_ANSWE", 17)) {
- /* R */
- *iv_return = LDNS_PACKET_ANSWER;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_FORMER", 17)) {
- /* R */
- *iv_return = LDNS_RCODE_FORMERR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_NOERRO", 17)) {
- /* R */
- *iv_return = LDNS_RCODE_NOERROR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RESOLV_ANCHO", 17)) {
- /* R */
-#ifdef LDNS_RESOLV_ANCHOR
- *iv_return = LDNS_RESOLV_ANCHOR;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RR_TYPE_NAPT", 17)) {
- /* R */
- *iv_return = LDNS_RR_TYPE_NAPTR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_PACKET_STATU", 17)) {
- /* S */
- *iv_return = LDNS_PACKET_STATUS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RCODE_NXRRSE", 17)) {
- /* T */
- *iv_return = LDNS_RCODE_NXRRSET;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_YXRRSE", 17)) {
- /* T */
- *iv_return = LDNS_RCODE_YXRRSET;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_LAS", 17)) {
- /* T */
- *iv_return = LDNS_RR_CLASS_LAST;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_COUN", 17)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_COUNT;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_FIRS", 17)) {
- /* T */
- *iv_return = LDNS_RR_TYPE_FIRST;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SIGN_ECC_GOS", 17)) {
- /* T */
- *iv_return = LDNS_SIGN_ECC_GOST;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_PACKET_IQUER", 17)) {
- /* Y */
- *iv_return = LDNS_PACKET_IQUERY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_PACKET_NOTIF", 17)) {
- /* Y */
- *iv_return = LDNS_PACKET_NOTIFY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_19 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_KEY_REVOKE_KEY LDNS_PACKET_UNKNOWN LDNS_RCODE_NXDOMAIN
- LDNS_RCODE_SERVFAIL LDNS_RCODE_YXDOMAIN LDNS_RDF_TYPE_CLASS
- LDNS_RDF_TYPE_DNAME LDNS_RDF_TYPE_INT16 LDNS_RDF_TYPE_INT32
- LDNS_RESOLV_INETANY LDNS_RESOLV_KEYWORD LDNS_RESOLV_OPTIONS
- LDNS_RESOLV_RTT_INF LDNS_RESOLV_RTT_MIN LDNS_RR_CLASS_COUNT
- LDNS_RR_CLASS_FIRST LDNS_RR_NO_COMPRESS LDNS_RR_TYPE_DNSKEY
- LDNS_RR_TYPE_NIMLOC LDNS_RR_TYPE_TALINK LDNS_RR_TYPE_UNSPEC
- LDNS_SECTION_ANSWER LDNS_SIGN_DSA_NSEC3 LDNS_SIGN_RSASHA256
- LDNS_SIGN_RSASHA512 LDNS_STATUS_MEM_ERR LDNS_STATUS_NO_DATA
- LDNS_STATUS_SSL_ERR */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_TALINK", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_TALINK;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_CLASS", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_CLASS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_CLASS_COUNT", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_COUNT;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RDF_TYPE_DNAME", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_DNAME;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_KEY_REVOKE_KEY", 19)) {
- /* ^ */
-#ifdef LDNS_KEY_REVOKE_KEY
- *iv_return = LDNS_KEY_REVOKE_KEY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RESOLV_INETANY", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_INETANY
- *iv_return = LDNS_RESOLV_INETANY;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'F':
- if (memEQ(name, "LDNS_RR_CLASS_FIRST", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_CLASS_FIRST;
- return PERL_constant_ISIV;
- }
- break;
- case 'H':
- if (memEQ(name, "LDNS_SIGN_RSASHA256", 19)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSASHA256;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SIGN_RSASHA512", 19)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSASHA512;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_RDF_TYPE_INT16", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_INT16;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_INT32", 19)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_INT32;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_NIMLOC", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NIMLOC;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_PACKET_UNKNOWN", 19)) {
- /* ^ */
- *iv_return = LDNS_PACKET_UNKNOWN;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_STATUS_SSL_ERR", 19)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SSL_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_STATUS_MEM_ERR", 19)) {
- /* ^ */
- *iv_return = LDNS_STATUS_MEM_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_RR_TYPE_DNSKEY", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_DNSKEY;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RR_TYPE_UNSPEC", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_UNSPEC;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SECTION_ANSWER", 19)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ANSWER;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SIGN_DSA_NSEC3", 19)) {
- /* ^ */
- *iv_return = LDNS_SIGN_DSA_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RCODE_NXDOMAIN", 19)) {
- /* ^ */
- *iv_return = LDNS_RCODE_NXDOMAIN;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RCODE_YXDOMAIN", 19)) {
- /* ^ */
- *iv_return = LDNS_RCODE_YXDOMAIN;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_NO_COMPRESS", 19)) {
- /* ^ */
- *iv_return = LDNS_RR_NO_COMPRESS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RESOLV_OPTIONS", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_OPTIONS
- *iv_return = LDNS_RESOLV_OPTIONS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RESOLV_RTT_INF", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_RTT_INF
- *iv_return = LDNS_RESOLV_RTT_INF;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_RESOLV_RTT_MIN", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_RTT_MIN
- *iv_return = LDNS_RESOLV_RTT_MIN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'V':
- if (memEQ(name, "LDNS_RCODE_SERVFAIL", 19)) {
- /* ^ */
- *iv_return = LDNS_RCODE_SERVFAIL;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_RESOLV_KEYWORD", 19)) {
- /* ^ */
-#ifdef LDNS_RESOLV_KEYWORD
- *iv_return = LDNS_RESOLV_KEYWORD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case '_':
- if (memEQ(name, "LDNS_STATUS_NO_DATA", 19)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NO_DATA;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_20 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_ECDSAP384SHA384 LDNS_PACKET_NXDOMAIN LDNS_PACKET_QUESTION
- LDNS_PACKET_REFERRAL LDNS_RDF_SIZE_6BYTES LDNS_RDF_TYPE_PERIOD
- LDNS_RESOLV_KEYWORDS LDNS_RESOLV_SORTLIST LDNS_SIGN_HMACSHA256
- LDNS_STATUS_FILE_ERR LDNS_STATUS_NOT_IMPL */
- /* Offset 18 gives the best switch position. */
- switch (name[18]) {
- case '5':
- if (memEQ(name, "LDNS_SIGN_HMACSHA256", 20)) {
- /* ^ */
- *iv_return = LDNS_SIGN_HMACSHA256;
- return PERL_constant_ISIV;
- }
- break;
- case '8':
- if (memEQ(name, "LDNS_ECDSAP384SHA384", 20)) {
- /* ^ */
- *iv_return = LDNS_ECDSAP384SHA384;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_PACKET_REFERRAL", 20)) {
- /* ^ */
- *iv_return = LDNS_PACKET_REFERRAL;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_RESOLV_KEYWORDS", 20)) {
- /* ^ */
-#ifdef LDNS_RESOLV_KEYWORDS
- *iv_return = LDNS_RESOLV_KEYWORDS;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_RDF_SIZE_6BYTES", 20)) {
- /* ^ */
-#ifdef LDNS_RDF_SIZE_6BYTES
- *iv_return = LDNS_RDF_SIZE_6BYTES;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_PACKET_NXDOMAIN", 20)) {
- /* ^ */
- *iv_return = LDNS_PACKET_NXDOMAIN;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_PACKET_QUESTION", 20)) {
- /* ^ */
- *iv_return = LDNS_PACKET_QUESTION;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_RDF_TYPE_PERIOD", 20)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_PERIOD;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_NOT_IMPL", 20)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NOT_IMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_FILE_ERR", 20)) {
- /* ^ */
- *iv_return = LDNS_STATUS_FILE_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_RESOLV_SORTLIST", 20)) {
- /* ^ */
-#ifdef LDNS_RESOLV_SORTLIST
- *iv_return = LDNS_RESOLV_SORTLIST;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_21 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_SIZE_16BYTES LDNS_RDF_TYPE_B32_EXT LDNS_RDF_TYPE_SERVICE
- LDNS_RDF_TYPE_UNKNOWN LDNS_RESOLV_DEFDOMAIN LDNS_RR_TYPE_IPSECKEY
- LDNS_RR_TYPE_NSAP_PTR LDNS_SECTION_QUESTION LDNS_STATUS_NSEC3_ERR
- LDNS_STATUS_RES_NO_NS LDNS_STATUS_RES_QUERY */
- /* Offset 16 gives the best switch position. */
- switch (name[16]) {
- case '2':
- if (memEQ(name, "LDNS_RDF_TYPE_B32_EXT", 21)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_B32_EXT;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_STATUS_NSEC3_ERR", 21)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NSEC3_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RDF_SIZE_16BYTES", 21)) {
- /* ^ */
-#ifdef LDNS_RDF_SIZE_16BYTES
- *iv_return = LDNS_RDF_SIZE_16BYTES;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_RR_TYPE_IPSECKEY", 21)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_IPSECKEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'K':
- if (memEQ(name, "LDNS_RDF_TYPE_UNKNOWN", 21)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_UNKNOWN;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_RES_NO_NS", 21)) {
- /* ^ */
- *iv_return = LDNS_STATUS_RES_NO_NS;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RESOLV_DEFDOMAIN", 21)) {
- /* ^ */
-#ifdef LDNS_RESOLV_DEFDOMAIN
- *iv_return = LDNS_RESOLV_DEFDOMAIN;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_RR_TYPE_NSAP_PTR", 21)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NSAP_PTR;
- return PERL_constant_ISIV;
- }
- break;
- case 'Q':
- if (memEQ(name, "LDNS_STATUS_RES_QUERY", 21)) {
- /* ^ */
- *iv_return = LDNS_STATUS_RES_QUERY;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RDF_TYPE_SERVICE", 21)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_SERVICE;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_SECTION_QUESTION", 21)) {
- /* ^ */
- *iv_return = LDNS_SECTION_QUESTION;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_22 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_TYPE_CERT_ALG LDNS_RDF_TYPE_IPSECKEY LDNS_RDF_TYPE_TSIGTIME
- LDNS_RESOLV_NAMESERVER LDNS_SECTION_AUTHORITY LDNS_STATUS_SYNTAX_ERR
- LDNS_STATUS_SYNTAX_TTL */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_CERT_ALG", 22)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_CERT_ALG;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_RDF_TYPE_IPSECKEY", 22)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_IPSECKEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_RESOLV_NAMESERVER", 22)) {
- /* ^ */
-#ifdef LDNS_RESOLV_NAMESERVER
- *iv_return = LDNS_RESOLV_NAMESERVER;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ERR", 22)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ERR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_SYNTAX_TTL", 22)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_TTL;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_RDF_TYPE_TSIGTIME", 22)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_TSIGTIME;
- return PERL_constant_ISIV;
- }
- break;
- case 'U':
- if (memEQ(name, "LDNS_SECTION_AUTHORITY", 22)) {
- /* ^ */
- *iv_return = LDNS_SECTION_AUTHORITY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_23 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RR_TYPE_NSEC3PARAM LDNS_SECTION_ADDITIONAL LDNS_SIGN_RSASHA1_NSEC3
- LDNS_STATUS_ADDRESS_ERR LDNS_STATUS_EMPTY_LABEL LDNS_STATUS_INVALID_B64
- LDNS_STATUS_INVALID_HEX LDNS_STATUS_INVALID_INT LDNS_STATUS_INVALID_IP4
- LDNS_STATUS_INVALID_IP6 LDNS_STATUS_INVALID_STR LDNS_STATUS_NETWORK_ERR */
- /* Offset 21 gives the best switch position. */
- switch (name[21]) {
- case '6':
- if (memEQ(name, "LDNS_STATUS_INVALID_B64", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_B64;
- return PERL_constant_ISIV;
- }
- break;
- case 'A':
- if (memEQ(name, "LDNS_RR_TYPE_NSEC3PARAM", 23)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NSEC3PARAM;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_SECTION_ADDITIONAL", 23)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ADDITIONAL;
- return PERL_constant_ISIV;
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_SIGN_RSASHA1_NSEC3", 23)) {
- /* ^ */
- *iv_return = LDNS_SIGN_RSASHA1_NSEC3;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_STATUS_EMPTY_LABEL", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_EMPTY_LABEL;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_INVALID_HEX", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_HEX;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_INVALID_INT", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_INT;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_INVALID_IP4", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_IP4;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_INVALID_IP6", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_IP6;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_ADDRESS_ERR", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_ADDRESS_ERR;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_NETWORK_ERR", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_NETWORK_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_INVALID_STR", 23)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_STR;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_24 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_SIZE_DOUBLEWORD LDNS_RDF_TYPE_INT16_DATA LDNS_RDF_TYPE_NSEC3_SALT
- LDNS_RR_TYPE_NSEC3PARAMS LDNS_STATUS_CRYPTO_BOGUS LDNS_STATUS_CRYPTO_NO_DS
- LDNS_STATUS_DDD_OVERFLOW LDNS_STATUS_INTERNAL_ERR LDNS_STATUS_INVALID_TIME
- LDNS_STATUS_SOCKET_ERROR LDNS_STATUS_SYNTAX_EMPTY LDNS_STATUS_UNKNOWN_INET
- */
- /* Offset 17 gives the best switch position. */
- switch (name[17]) {
- case '1':
- if (memEQ(name, "LDNS_RDF_TYPE_INT16_DATA", 24)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_INT16_DATA;
- return PERL_constant_ISIV;
- }
- break;
- case '3':
- if (memEQ(name, "LDNS_RR_TYPE_NSEC3PARAMS", 24)) {
- /* ^ */
- *iv_return = LDNS_RR_TYPE_NSEC3PARAMS;
- return PERL_constant_ISIV;
- }
- break;
- case 'B':
- if (memEQ(name, "LDNS_RDF_SIZE_DOUBLEWORD", 24)) {
- /* ^ */
-#ifdef LDNS_RDF_SIZE_DOUBLEWORD
- *iv_return = LDNS_RDF_SIZE_DOUBLEWORD;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'C':
- if (memEQ(name, "LDNS_RDF_TYPE_NSEC3_SALT", 24)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_NSEC3_SALT;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_STATUS_INVALID_TIME", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_TIME;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_INTERNAL_ERR", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INTERNAL_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_BOGUS", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_BOGUS;
- return PERL_constant_ISIV;
- }
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_DS", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_DS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SOCKET_ERROR", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SOCKET_ERROR;
- return PERL_constant_ISIV;
- }
- break;
- case 'V':
- if (memEQ(name, "LDNS_STATUS_DDD_OVERFLOW", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DDD_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'W':
- if (memEQ(name, "LDNS_STATUS_UNKNOWN_INET", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_UNKNOWN_INET;
- return PERL_constant_ISIV;
- }
- break;
- case 'X':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_EMPTY", 24)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_EMPTY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_26 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_LABEL_OVERFLOW LDNS_STATUS_SYNTAX_ALG_ERR
- LDNS_STATUS_SYNTAX_INCLUDE LDNS_STATUS_SYNTAX_TTL_ERR */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'E':
- if (memEQ(name, "LDNS_STATUS_LABEL_OVERFLOW", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_LABEL_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ALG_ERR", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ALG_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_INCLUDE", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_INCLUDE;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_TTL_ERR", 26)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_TTL_ERR;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_27 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_SECTION_ANY_NOQUESTION
- LDNS_STATUS_CRYPTO_NO_RRSIG LDNS_STATUS_CRYPTO_TSIG_ERR
- LDNS_STATUS_INVALID_B32_EXT LDNS_STATUS_INVALID_POINTER
- LDNS_STATUS_PACKET_OVERFLOW LDNS_STATUS_SYNTAX_TYPE_ERR */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'B':
- if (memEQ(name, "LDNS_STATUS_INVALID_B32_EXT", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_B32_EXT;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_RRSIG", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_RRSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_INVALID_POINTER", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_INVALID_POINTER;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_TSIG_ERR", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_TSIG_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'U':
- if (memEQ(name, "LDNS_NSEC3_VARS_OPTOUT_MASK", 27)) {
- /* ^ */
-#ifdef LDNS_NSEC3_VARS_OPTOUT_MASK
- *iv_return = LDNS_NSEC3_VARS_OPTOUT_MASK;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- if (memEQ(name, "LDNS_SECTION_ANY_NOQUESTION", 27)) {
- /* ^ */
- *iv_return = LDNS_SECTION_ANY_NOQUESTION;
- return PERL_constant_ISIV;
- }
- break;
- case 'V':
- if (memEQ(name, "LDNS_STATUS_PACKET_OVERFLOW", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_PACKET_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_TYPE_ERR", 27)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_TYPE_ERR;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_28 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_CRYPTO_NO_DNSKEY LDNS_STATUS_CRYPTO_VALIDATED
- LDNS_STATUS_SYNTAX_CLASS_ERR LDNS_STATUS_SYNTAX_DNAME_ERR
- LDNS_STATUS_SYNTAX_RDATA_ERR */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'A':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_VALIDATED", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_VALIDATED;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_RDATA_ERR", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_RDATA_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'L':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_CLASS_ERR", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_CLASS_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_DNAME_ERR", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_DNAME_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_DNSKEY", 28)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_DNSKEY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_30 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDF_TYPE_NSEC3_NEXT_OWNER LDNS_STATUS_CERT_BAD_ALGORITHM
- LDNS_STATUS_CRYPTO_SIG_EXPIRED LDNS_STATUS_SYNTAX_KEYWORD_ERR
- LDNS_STATUS_SYNTAX_VERSION_ERR */
- /* Offset 25 gives the best switch position. */
- switch (name[25]) {
- case 'D':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_KEYWORD_ERR", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_KEYWORD_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_VERSION_ERR", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_VERSION_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", 30)) {
- /* ^ */
- *iv_return = LDNS_RDF_TYPE_NSEC3_NEXT_OWNER;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_SIG_EXPIRED", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_SIG_EXPIRED;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_CERT_BAD_ALGORITHM", 30)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CERT_BAD_ALGORITHM;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_32 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL LDNS_STATUS_CRYPTO_NO_TRUSTED_DS
- LDNS_STATUS_DOMAINNAME_UNDERFLOW */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'L':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", 32)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'M':
- if (memEQ(name, "LDNS_STATUS_DOMAINNAME_UNDERFLOW", 32)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DOMAINNAME_UNDERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", 32)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_TRUSTED_DS;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_35 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_RDATA_FIELD_DESCRIPTORS_COMMON LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED
- LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR LDNS_STATUS_DNSSEC_EXISTENCE_DENIED
- LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW */
- /* Offset 21 gives the best switch position. */
- switch (name[21]) {
- case 'G':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED;
- return PERL_constant_ISIV;
- }
- break;
- case 'I':
- if (memEQ(name, "LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DNSSEC_EXISTENCE_DENIED;
- return PERL_constant_ISIV;
- }
- break;
- case 'P':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_RDATA_FIELD_DESCRIPTORS_COMMON", 35)) {
- /* ^ */
-#ifdef LDNS_RDATA_FIELD_DESCRIPTORS_COMMON
- *iv_return = LDNS_RDATA_FIELD_DESCRIPTORS_COMMON;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", 35)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_36 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY LDNS_STATUS_MISSING_RDATA_FIELDS_KEY
- LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR LDNS_STATUS_WIRE_INCOMPLETE_QUESTION
- */
- /* Offset 14 gives the best switch position. */
- switch (name[14]) {
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_QUESTION;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_MISSING_RDATA_FIELDS_KEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'Y':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", 36)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant_38 (pTHX_ const char *name, IV *iv_return) {
- /* When generated this function returned values for the list of names given
- here. However, subsequent manual editing may have added or removed some.
- LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED
- LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG
- LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL
- LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW
- LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL */
- /* Offset 20 gives the best switch position. */
- switch (name[20]) {
- case 'N':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL;
- return PERL_constant_ISIV;
- }
- break;
- case 'O':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL;
- return PERL_constant_ISIV;
- }
- break;
- case 'R':
- if (memEQ(name, "LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG;
- return PERL_constant_ISIV;
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", 38)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
-static int
-constant (pTHX_ const char *name, STRLEN len, IV *iv_return) {
- /* Initially switch on the length of the name. */
- /* When generated this function returned values for the list of names given
- in this section of perl code. Rather than manually editing these functions
- to add or remove constants, which would result in this comment and section
- of code becoming inaccurate, we recommend that you edit this section of
- code, and use it to regenerate a new set of constant functions which you
- then use to replace the originals.
-
- Regenerate these constant functions by feeding this entire source file to
- perl -x
-
-#!/usr/bin/perl -w
-use ExtUtils::Constant qw (constant_types C_constant XS_constant);
-
-my $types = {map {($_, 1)} qw(IV)};
-my @names = (qw(LDNS_AA LDNS_AD LDNS_CD LDNS_DEFAULT_TTL LDNS_IP4ADDRLEN
- LDNS_IP6ADDRLEN LDNS_KEY_REVOKE_KEY LDNS_KEY_SEP_KEY
- LDNS_KEY_ZONE_KEY LDNS_MAX_DOMAINLEN LDNS_MAX_LABELLEN
- LDNS_MAX_PACKETLEN LDNS_MAX_POINTERS LDNS_MAX_RDFLEN
- LDNS_NSEC3_VARS_OPTOUT_MASK LDNS_PORT LDNS_QR LDNS_RA LDNS_RD
- LDNS_RDATA_FIELD_DESCRIPTORS_COMMON LDNS_RDF_SIZE_16BYTES
- LDNS_RDF_SIZE_6BYTES LDNS_RDF_SIZE_BYTE LDNS_RDF_SIZE_DOUBLEWORD
- LDNS_RDF_SIZE_WORD LDNS_RESOLV_ANCHOR LDNS_RESOLV_DEFDOMAIN
- LDNS_RESOLV_INET LDNS_RESOLV_INET6 LDNS_RESOLV_INETANY
- LDNS_RESOLV_KEYWORD LDNS_RESOLV_KEYWORDS LDNS_RESOLV_NAMESERVER
- LDNS_RESOLV_OPTIONS LDNS_RESOLV_RTT_INF LDNS_RESOLV_RTT_MIN
- LDNS_RESOLV_SEARCH LDNS_RESOLV_SORTLIST LDNS_RR_OVERHEAD
- LDNS_TC),
- {name=>"LDNS_CERT_ACPKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_IACPKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_IPGP", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_IPKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_ISPKI", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_OID", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_PGP", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_PKIX", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_SPKI", type=>"IV", macro=>"1"},
- {name=>"LDNS_CERT_URI", type=>"IV", macro=>"1"},
- {name=>"LDNS_DH", type=>"IV", macro=>"1"},
- {name=>"LDNS_DSA", type=>"IV", macro=>"1"},
- {name=>"LDNS_DSA_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_ECC", type=>"IV", macro=>"1"},
- {name=>"LDNS_ECC_GOST", type=>"IV", macro=>"1"},
- {name=>"LDNS_ECDSAP384SHA384", type=>"IV", macro=>"1"},
- {name=>"LDNS_HASH_GOST", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_ANSWER", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_IQUERY", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_NODATA", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_NOTIFY", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_NXDOMAIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_QUERY", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_QUESTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_REFERRAL", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_STATUS", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_UNKNOWN", type=>"IV", macro=>"1"},
- {name=>"LDNS_PACKET_UPDATE", type=>"IV", macro=>"1"},
- {name=>"LDNS_PRIVATEDNS", type=>"IV", macro=>"1"},
- {name=>"LDNS_PRIVATEOID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_FORMERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOERROR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOTAUTH", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOTIMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NOTZONE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NXDOMAIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_NXRRSET", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_REFUSED", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_SERVFAIL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_YXDOMAIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RCODE_YXRRSET", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_A", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_AAAA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_ALG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_APL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_ATMA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_B32_EXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_B64", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_CERT_ALG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_CLASS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_DNAME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_HEX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT16", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT16_DATA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT32", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_INT8", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_IPSECKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_LOC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NONE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSAP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC3_NEXT_OWNER", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_NSEC3_SALT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_PERIOD", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_SERVICE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_STR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TIME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_HIP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TSIGTIME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_TYPE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_UNKNOWN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RDF_TYPE_WKS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_ANY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_CH", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_COUNT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_FIRST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_HS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_IN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_LAST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_CLASS_NONE", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_COMPRESS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_NO_COMPRESS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_A", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_A6", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AAAA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AFSDB", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ANY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_APL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ATMA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_AXFR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_CERT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_CNAME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_COUNT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DHCID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DLV", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DNAME", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_DS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_EID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_FIRST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_GID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_GPOS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_HINFO", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_IPSECKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_ISDN", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_IXFR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_KEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_KX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_LAST", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_LOC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MAILA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MAILB", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MB", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MD", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MF", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MINFO", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_MX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NAPTR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NIMLOC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSAP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSAP_PTR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3PARAM", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NSEC3PARAMS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NULL", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_NXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_OPT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_PTR", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_PX", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RRSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_RT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SINK", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SOA", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SPF", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SRV", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_SSHFP", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TALINK", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_TXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UID", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UINFO", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_UNSPEC", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_WKS", type=>"IV", macro=>"1"},
- {name=>"LDNS_RR_TYPE_X25", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSAMD5", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA1_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_RSASHA512", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ADDITIONAL", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ANSWER", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ANY", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_ANY_NOQUESTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_AUTHORITY", type=>"IV", macro=>"1"},
- {name=>"LDNS_SECTION_QUESTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_SHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_SHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_SHA384", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_DSA", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_DSA_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_ECC_GOST", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_ECDSAP384SHA384", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_HMACSHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_HMACSHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSAMD5", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA1", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA1_NSEC3", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA256", type=>"IV", macro=>"1"},
- {name=>"LDNS_SIGN_RSASHA512", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_ADDRESS_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CERT_BAD_ALGORITHM", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_BOGUS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_DS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_RRSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_NO_TRUSTED_DS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_SIG_EXPIRED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TSIG_BOGUS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TSIG_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_CRYPTO_VALIDATED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DDD_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_EXISTENCE_DENIED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DOMAINNAME_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_DOMAINNAME_UNDERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_EMPTY_LABEL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_ENGINE_KEY_NOT_LOADED", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_FILE_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INTERNAL_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_B32_EXT", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_B64", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_HEX", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_INT", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_IP4", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_IP6", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_POINTER", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_STR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_INVALID_TIME", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_LABEL_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_MEM_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_KEY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NETWORK_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NOT_IMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NO_DATA", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NSEC3_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_NULL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_OK", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_PACKET_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_RES_NO_NS", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_RES_QUERY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SOCKET_ERROR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SSL_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ALG_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_BAD_ESCAPE", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_CLASS_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_DNAME_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_EMPTY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INCLUDE", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_KEYWORD_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_ORIGIN", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_RDATA_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TTL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TTL_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_TYPE_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_SYNTAX_VERSION_ERR", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_UNKNOWN_INET", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_HEADER", type=>"IV", macro=>"1"},
- {name=>"LDNS_STATUS_WIRE_INCOMPLETE_QUESTION", type=>"IV", macro=>"1"},
- {name=>"endif", type=>"IV", macro=>"1"},
- {name=>"if", type=>"IV", macro=>"1"});
-
-print constant_types(), "\n"; # macro defs
-foreach (C_constant ("LDNS", 'constant', 'IV', $types, undef, 3, @names) ) {
- print $_, "\n"; # C constant subs
-}
-print "\n#### XS Section:\n";
-print XS_constant ("LDNS", $types);
-__END__
- */
-
- switch (len) {
- case 2:
- if (name[0] == 'i' && name[1] == 'f') {
- *iv_return = if;
- return PERL_constant_ISIV;
- }
- break;
- case 5:
- if (memEQ(name, "endif", 5)) {
- *iv_return = endif;
- return PERL_constant_ISIV;
- }
- break;
- case 7:
- return constant_7 (aTHX_ name, iv_return);
- break;
- case 8:
- /* Names all of length 8. */
- /* LDNS_DSA LDNS_ECC */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'D':
- if (memEQ(name, "LDNS_DSA", 8)) {
- /* ^ */
- *iv_return = LDNS_DSA;
- return PERL_constant_ISIV;
- }
- break;
- case 'E':
- if (memEQ(name, "LDNS_ECC", 8)) {
- /* ^ */
- *iv_return = LDNS_ECC;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 9:
- /* Names all of length 9. */
- /* LDNS_PORT LDNS_SHA1 */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'P':
- if (memEQ(name, "LDNS_PORT", 9)) {
- /* ^ */
-#ifdef LDNS_PORT
- *iv_return = LDNS_PORT;
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'S':
- if (memEQ(name, "LDNS_SHA1", 9)) {
- /* ^ */
- *iv_return = LDNS_SHA1;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 11:
- return constant_11 (aTHX_ name, iv_return);
- break;
- case 12:
- if (memEQ(name, "LDNS_RSASHA1", 12)) {
- *iv_return = LDNS_RSASHA1;
- return PERL_constant_ISIV;
- }
- break;
- case 13:
- return constant_13 (aTHX_ name, iv_return);
- break;
- case 14:
- return constant_14 (aTHX_ name, iv_return);
- break;
- case 15:
- return constant_15 (aTHX_ name, iv_return);
- break;
- case 16:
- return constant_16 (aTHX_ name, iv_return);
- break;
- case 17:
- return constant_17 (aTHX_ name, iv_return);
- break;
- case 18:
- return constant_18 (aTHX_ name, iv_return);
- break;
- case 19:
- return constant_19 (aTHX_ name, iv_return);
- break;
- case 20:
- return constant_20 (aTHX_ name, iv_return);
- break;
- case 21:
- return constant_21 (aTHX_ name, iv_return);
- break;
- case 22:
- return constant_22 (aTHX_ name, iv_return);
- break;
- case 23:
- return constant_23 (aTHX_ name, iv_return);
- break;
- case 24:
- return constant_24 (aTHX_ name, iv_return);
- break;
- case 25:
- /* Names all of length 25. */
- /* LDNS_SIGN_ECDSAP384SHA384 LDNS_STATUS_SYNTAX_ORIGIN */
- /* Offset 15 gives the best switch position. */
- switch (name[15]) {
- case 'P':
- if (memEQ(name, "LDNS_SIGN_ECDSAP384SHA384", 25)) {
- /* ^ */
- *iv_return = LDNS_SIGN_ECDSAP384SHA384;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_ORIGIN", 25)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_ORIGIN;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 26:
- return constant_26 (aTHX_ name, iv_return);
- break;
- case 27:
- return constant_27 (aTHX_ name, iv_return);
- break;
- case 28:
- return constant_28 (aTHX_ name, iv_return);
- break;
- case 29:
- /* Names all of length 29. */
- /* LDNS_STATUS_CRYPTO_TSIG_BOGUS LDNS_STATUS_SYNTAX_BAD_ESCAPE */
- /* Offset 15 gives the best switch position. */
- switch (name[15]) {
- case 'P':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_TSIG_BOGUS", 29)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_TSIG_BOGUS;
- return PERL_constant_ISIV;
- }
- break;
- case 'T':
- if (memEQ(name, "LDNS_STATUS_SYNTAX_BAD_ESCAPE", 29)) {
- /* ^ */
- *iv_return = LDNS_STATUS_SYNTAX_BAD_ESCAPE;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 30:
- return constant_30 (aTHX_ name, iv_return);
- break;
- case 31:
- /* Names all of length 31. */
- /* LDNS_STATUS_CRYPTO_UNKNOWN_ALGO LDNS_STATUS_DOMAINNAME_OVERFLOW */
- /* Offset 12 gives the best switch position. */
- switch (name[12]) {
- case 'C':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_UNKNOWN_ALGO", 31)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_UNKNOWN_ALGO;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_STATUS_DOMAINNAME_OVERFLOW", 31)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DOMAINNAME_OVERFLOW;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 32:
- return constant_32 (aTHX_ name, iv_return);
- break;
- case 33:
- if (memEQ(name, "LDNS_STATUS_ENGINE_KEY_NOT_LOADED", 33)) {
- *iv_return = LDNS_STATUS_ENGINE_KEY_NOT_LOADED;
- return PERL_constant_ISIV;
- }
- break;
- case 34:
- /* Names all of length 34. */
- /* LDNS_STATUS_WIRE_INCOMPLETE_ANSWER LDNS_STATUS_WIRE_INCOMPLETE_HEADER */
- /* Offset 28 gives the best switch position. */
- switch (name[28]) {
- case 'A':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_ANSWER", 34)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_ANSWER;
- return PERL_constant_ISIV;
- }
- break;
- case 'H':
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_HEADER", 34)) {
- /* ^ */
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_HEADER;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 35:
- return constant_35 (aTHX_ name, iv_return);
- break;
- case 36:
- return constant_36 (aTHX_ name, iv_return);
- break;
- case 37:
- if (memEQ(name, "LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY", 37)) {
- *iv_return = LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY;
- return PERL_constant_ISIV;
- }
- break;
- case 38:
- return constant_38 (aTHX_ name, iv_return);
- break;
- case 43:
- if (memEQ(name, "LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND", 43)) {
- *iv_return = LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND;
- return PERL_constant_ISIV;
- }
- break;
- case 44:
- /* Names all of length 44. */
- /* LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY
- LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED */
- /* Offset 12 gives the best switch position. */
- switch (name[12]) {
- case 'C':
- if (memEQ(name, "LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY", 44)) {
- /* ^ */
- *iv_return = LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY;
- return PERL_constant_ISIV;
- }
- break;
- case 'D':
- if (memEQ(name, "LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED", 44)) {
- /* ^ */
- *iv_return = LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED;
- return PERL_constant_ISIV;
- }
- break;
- }
- break;
- case 46:
- if (memEQ(name, "LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION", 46)) {
- *iv_return = LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION;
- return PERL_constant_ISIV;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
diff --git a/contrib/DNS-LDNS/fallback/const-xs.inc b/contrib/DNS-LDNS/fallback/const-xs.inc
deleted file mode 100644
index 1738df2243a7..000000000000
--- a/contrib/DNS-LDNS/fallback/const-xs.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-void
-constant(sv)
- PREINIT:
-#ifdef dXSTARG
- dXSTARG; /* Faster if we have it. */
-#else
- dTARGET;
-#endif
- STRLEN len;
- int type;
- IV iv;
- /* NV nv; Uncomment this if you need to return NVs */
- /* const char *pv; Uncomment this if you need to return PVs */
- INPUT:
- SV * sv;
- const char * s = SvPV(sv, len);
- PPCODE:
- /* Change this to constant(aTHX_ s, len, &iv, &nv);
- if you need to return both NVs and IVs */
- type = constant(aTHX_ s, len, &iv);
- /* Return 1 or 2 items. First is error message, or undef if no error.
- Second, if present, is found value */
- switch (type) {
- case PERL_constant_NOTFOUND:
- sv =
- sv_2mortal(newSVpvf("%s is not a valid LDNS macro", s));
- PUSHs(sv);
- break;
- case PERL_constant_NOTDEF:
- sv = sv_2mortal(newSVpvf(
- "Your vendor has not defined LDNS macro %s, used",
- s));
- PUSHs(sv);
- break;
- case PERL_constant_ISIV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHi(iv);
- break;
- /* Uncomment this if you need to return NOs
- case PERL_constant_ISNO:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(&PL_sv_no);
- break; */
- /* Uncomment this if you need to return NVs
- case PERL_constant_ISNV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHn(nv);
- break; */
- /* Uncomment this if you need to return PVs
- case PERL_constant_ISPV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHp(pv, strlen(pv));
- break; */
- /* Uncomment this if you need to return PVNs
- case PERL_constant_ISPVN:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHp(pv, iv);
- break; */
- /* Uncomment this if you need to return SVs
- case PERL_constant_ISSV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(sv);
- break; */
- /* Uncomment this if you need to return UNDEFs
- case PERL_constant_ISUNDEF:
- break; */
- /* Uncomment this if you need to return UVs
- case PERL_constant_ISUV:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHu((UV)iv);
- break; */
- /* Uncomment this if you need to return YESs
- case PERL_constant_ISYES:
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(&PL_sv_yes);
- break; */
- default:
- sv = sv_2mortal(newSVpvf(
- "Unexpected return type %d while processing LDNS macro %s, used",
- type, s));
- PUSHs(sv);
- }
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS.pm b/contrib/DNS-LDNS/lib/DNS/LDNS.pm
index beeedbef9263..5f01849c9698 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS.pm
@@ -651,7 +651,7 @@ our @EXPORT = qw(
read_anchor_file
);
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecDataChain.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecDataChain.pm
index 28bebe044c0a..661e0f6d4073 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecDataChain.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecDataChain.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub rrset {
my $self = shift;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecName.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecName.pm
index 0af91e2e4c32..8d94f6e387a1 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecName.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecName.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my $class = shift;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRSets.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRSets.pm
index 05471c7d1d6e..1dabd0c56425 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRSets.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRSets.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
# Note: Since this class does not have a constructor, we can let its child
# objects be owned by the parent. This reduces the recursion depth on
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRs.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRs.pm
index 78aa080c9c19..3a6b1cac4710 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRs.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecRRs.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
# Note: This class does not have a constructor. Thus, it can not be created
# as an individual object. The data structure of the node is owned
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecTrustTree.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecTrustTree.pm
index cdd3ed846dd4..7e0d4435c84e 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecTrustTree.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecTrustTree.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub add_parent {
my ($self, $parent, $sig, $parent_status) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecZone.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecZone.pm
index d273a00d2247..15e2b46c7ffe 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecZone.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/DNSSecZone.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, %args) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/GC.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/GC.pm
index e0d51e0d1ccd..877c15c36248 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/GC.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/GC.pm
@@ -3,7 +3,7 @@ package DNS::LDNS::GC;
use strict;
use warnings;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
my %ref_count;
my %owned_by;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/Key.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/Key.pm
index f2fbb2e3e0ac..250373cdc850 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/Key.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/Key.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, %args) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/KeyList.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/KeyList.pm
index 678225fd9a4c..e25093a792c2 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/KeyList.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/KeyList.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my $class = shift;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/Packet.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/Packet.pm
index c8d4ae2d4d9f..f975eae4947a 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/Packet.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/Packet.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, %args) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/RBNode.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/RBNode.pm
index 38adb385dfce..b12547a2c012 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/RBNode.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/RBNode.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
# Note: This class does not have a constructor. Thus, it can not be created
# as an individual object. The data structure of the object will always be
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/RBTree.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/RBTree.pm
index f64731a5b85c..e6e761902ecb 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/RBTree.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/RBTree.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
# Note: Since this class does not have a constructor, we can let its child
# objects be owned by the parent. This reduces the recursion depth on
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/RData.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/RData.pm
index d495d3fbcf36..8b29aecae3c1 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/RData.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/RData.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, $type, $str) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/RR.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/RR.pm
index 70c919cd295a..95d663c15263 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/RR.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/RR.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my $class = shift;
@@ -24,12 +24,15 @@ sub new {
}
else {
my %args = @_;
+ # Perl 5.25 does not allow us to pass read-only undef into a
+ # parameter changing function. So we must send it with a variable.
+ my $undef = undef;
if ($args{str}) {
$rr = _new_from_str($args{str},
$args{default_ttl} || 0,
$args{origin},
- $args{prev} ? ${$args{prev}} : undef,
+ $args{prev} ? ${$args{prev}} : $undef,
$status);
}
elsif ($args{filename} or $args{file}) {
@@ -47,8 +50,8 @@ sub new {
my $ttl = 0;
$rr = _new_from_file($file,
$args{default_ttl} ? ${$args{default_ttl}} : $ttl,
- $args{origin} ? ${$args{origin}} : undef,
- $args{prev} ? ${$args{prev}} : undef,
+ $args{origin} ? ${$args{origin}} : $undef,
+ $args{prev} ? ${$args{prev}} : $undef,
$status,
$line_nr);
if ($args{filename}) {
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/RRList.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/RRList.pm
index 7fdbd59db1dd..69b8d567be71 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/RRList.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/RRList.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS;
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, %args) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/Resolver.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/Resolver.pm
index fe4e10eff1cb..e389a045f901 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/Resolver.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/Resolver.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, %args) = @_;
diff --git a/contrib/DNS-LDNS/lib/DNS/LDNS/Zone.pm b/contrib/DNS-LDNS/lib/DNS/LDNS/Zone.pm
index 7f479275c418..cb48186f16f0 100644
--- a/contrib/DNS-LDNS/lib/DNS/LDNS/Zone.pm
+++ b/contrib/DNS-LDNS/lib/DNS/LDNS/Zone.pm
@@ -6,7 +6,7 @@ use warnings;
use DNS::LDNS ':all';
-our $VERSION = '0.52';
+our $VERSION = '0.61';
sub new {
my ($class, %args) = @_;
diff --git a/contrib/android/15-android.conf b/contrib/android/15-android.conf
new file mode 100644
index 000000000000..e1fc91e703f2
--- /dev/null
+++ b/contrib/android/15-android.conf
@@ -0,0 +1,37 @@
+#### Android...
+#
+# Heavily hacked 15-android.conf based on OpenSSL's config file of the same name.
+# This 15-android.conf avoids compiler errors using NDK-r20. This 15-android.conf
+# requires an environment set (sourced) using setenv-android.sh.
+
+my %targets = (
+ "android" => {
+ inherit_from => [ "linux-generic32" ],
+ template => 1,
+ bin_cflags => add("-fPIE"),
+ bin_lflags => add("-pie"),
+ enable => [ ],
+ },
+
+ "android-arm" => {
+ inherit_from => [ "android", asm("armv4_asm") ],
+ bn_ops => [ "BN_LLONG", "RC4_CHAR" ],
+ },
+ "android-arm64" => {
+ inherit_from => [ "android", asm("aarch64_asm") ],
+ bn_ops => [ "SIXTY_FOUR_BIT_LONG", "RC4_CHAR" ],
+ perlasm_scheme => "linux64",
+ },
+
+ "android-x86" => {
+ inherit_from => [ "android", asm("x86_asm") ],
+ cflags => add(picker(release => "-fomit-frame-pointer")),
+ bn_ops => [ "BN_LLONG", "RC4_INT" ],
+ perlasm_scheme => "android",
+ },
+ "android-x86_64" => {
+ inherit_from => [ "android", asm("x86_64_asm") ],
+ bn_ops => [ "SIXTY_FOUR_BIT_LONG", "RC4_INT" ],
+ perlasm_scheme => "elf",
+ },
+);
diff --git a/contrib/android/bootstrap_ldns.sh b/contrib/android/bootstrap_ldns.sh
new file mode 100755
index 000000000000..7e423030ccae
--- /dev/null
+++ b/contrib/android/bootstrap_ldns.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+if ! git submodule update --init; then
+ echo "Failed to init submodule"
+ exit 1
+fi
+
+echo "AUTOTOOLS_BUILD: $AUTOTOOLS_BUILD"
+echo "AUTOTOOLS_HOST: $AUTOTOOLS_HOST"
+
+# libtool complains about our updated config.guess and config.sub.
+# Remove them to get through bootstrap. Re-add them after libtoolize.
+
+echo "Running libtoolize"
+if [ -n "$(command -v glibtoolize)" ]; then
+ rm -f config.guess config.sub
+ if ! glibtoolize -ci ; then
+ echo "Failed to libtoolize (glibtoolize)"
+ exit 1
+ fi
+elif [ -n "$(command -v libtoolize)" ]; then
+ rm -f config.guess config.sub
+ if ! libtoolize -ci ; then
+ echo "Failed to libtoolize (libtoolize)"
+ exit 1
+ fi
+else
+ echo "Failed to find a libtool"
+ exit 1
+fi
+
+echo "Updating config.guess"
+if ! wget -q -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'; then
+ echo "Failed to download config.guess"
+fi
+
+echo "Updating config.sub"
+if ! wget -q -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'; then
+ echo "Failed to download config.sub"
+fi
+
+echo "Fixing config permissions"
+chmod a+x config.guess config.sub
+if [ -n "$(command -v xattr 2>/dev/null)" ]; then
+ xattr -d com.apple.quarantine config.guess 2>/dev/null
+ xattr -d com.apple.quarantine config.sub 2>/dev/null
+fi
+
+echo "Running autoreconf"
+if ! autoreconf -fi ; then
+ echo "Failed to autoreconf"
+ exit 1
+fi
+
+exit 0
diff --git a/contrib/android/install_ndk.sh b/contrib/android/install_ndk.sh
new file mode 100755
index 000000000000..90e453153db5
--- /dev/null
+++ b/contrib/android/install_ndk.sh
@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+
+if [ -z "$ANDROID_SDK_ROOT" ]; then
+ echo "ERROR: ANDROID_SDK_ROOT is not set. Please set it."
+ echo "SDK root is $ANDROID_SDK_ROOT"
+ exit 1
+fi
+
+if [ -z "$ANDROID_NDK_ROOT" ]; then
+ echo "ERROR: ANDROID_NDK_ROOT is not set. Please set it."
+ echo "NDK root is $ANDROID_NDK_ROOT"
+ exit 1
+fi
+
+echo "Using ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
+echo "Using ANDROID_NDK_ROOT: $ANDROID_NDK_ROOT"
+
+echo "Downloading SDK"
+if ! curl -L -k -s -o "$HOME/android-sdk.zip" https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip;
+then
+ echo "Failed to download SDK"
+ exit 1
+fi
+
+echo "Downloading NDK"
+if ! curl -L -k -s -o "$HOME/android-ndk.zip" https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip;
+then
+ echo "Failed to download NDK"
+ exit 1
+fi
+
+echo "Unpacking SDK to $ANDROID_SDK_ROOT"
+if ! unzip -qq "$HOME/android-sdk.zip" -d "$ANDROID_SDK_ROOT";
+then
+ echo "Failed to unpack SDK"
+ exit 1
+fi
+
+echo "Unpacking NDK to $ANDROID_NDK_ROOT"
+if ! unzip -qq "$HOME/android-ndk.zip" -d "$HOME";
+then
+ echo "Failed to unpack NDK"
+ exit 1
+fi
+
+if ! mv "$HOME/android-ndk-r20b" "$ANDROID_NDK_ROOT";
+then
+ echo "Failed to move $HOME/android-ndk-r20b to $ANDROID_NDK_ROOT"
+ exit 1
+fi
+
+rm -f "$HOME/android-sdk.zip"
+rm -f "$HOME/android-ndk.zip"
+
+# https://stackoverflow.com/a/47028911/608639
+touch "$ANDROID_SDK_ROOT/repositories.cfg"
+
+echo "Finished installing SDK and NDK"
+
+exit 0
diff --git a/contrib/android/install_openssl.sh b/contrib/android/install_openssl.sh
new file mode 100755
index 000000000000..e4fb87266e2e
--- /dev/null
+++ b/contrib/android/install_openssl.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+echo "Downloading OpenSSL"
+if ! curl -L -k -s -o openssl-1.1.1d.tar.gz https://www.openssl.org/source/openssl-1.1.1d.tar.gz;
+then
+ echo "Failed to download OpenSSL"
+ exit 1
+fi
+
+echo "Unpacking OpenSSL"
+rm -rf ./openssl-1.1.1d
+if ! tar -xf openssl-1.1.1d.tar.gz;
+then
+ echo "Failed to unpack OpenSSL"
+ exit 1
+fi
+
+cd openssl-1.1.1d || exit 1
+
+if ! cp ../contrib/android/15-android.conf Configurations/; then
+ echo "Failed to copy OpenSSL Android config"
+ exit 1
+fi
+
+echo "Configuring OpenSSL"
+if ! ./Configure "$OPENSSL_HOST" no-comp no-asm no-hw no-engine shared \
+ --prefix="$ANDROID_PREFIX" --openssldir="$ANDROID_PREFIX"; then
+ echo "Failed to configure OpenSSL"
+ exit 1
+fi
+
+echo "Building OpenSSL"
+if ! make; then
+ echo "Failed to build OpenSSL"
+ exit 1
+fi
+
+echo "Installing OpenSSL"
+if ! make install_sw; then
+ echo "Failed to install OpenSSL"
+ exit 1
+fi
+
+exit 0
diff --git a/contrib/android/install_tools.sh b/contrib/android/install_tools.sh
new file mode 100755
index 000000000000..45aff601e2d7
--- /dev/null
+++ b/contrib/android/install_tools.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+# This step should install tools needed for all packages - OpenSSL and LDNS
+echo "Updating tools"
+sudo apt-get -qq update
+sudo apt-get -qq install --no-install-recommends curl wget tar zip unzip patch perl openjdk-8-jdk autoconf automake libtool pkg-config
+
+# Android builds run config.guess early to determine BUILD and HOST. We need to add config.guess
+# and config.sub now. Later, bootstrap_ldns.sh will handle the complete bootstrap of LDNS.
+
+echo "Adding config.guess"
+if ! wget -q -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'; then
+ echo "Failed to download config.guess"
+fi
+
+echo "Adding config.sub"
+if ! wget -q -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'; then
+ echo "Failed to download config.sub"
+fi
+
+echo "Fixing config permissions"
+chmod a+x config.guess config.sub
+if [ -n "$(command -v xattr 2>/dev/null)" ]; then
+ xattr -d com.apple.quarantine config.guess 2>/dev/null
+ xattr -d com.apple.quarantine config.sub 2>/dev/null
+fi
diff --git a/contrib/android/setenv_android.sh b/contrib/android/setenv_android.sh
new file mode 100755
index 000000000000..f45acb0f7ead
--- /dev/null
+++ b/contrib/android/setenv_android.sh
@@ -0,0 +1,203 @@
+#!/usr/bin/env bash
+
+# ====================================================================
+# Sets the cross compile environment for Android
+#
+# Based upon OpenSSL's setenv-android.sh by TH, JW, and SM.
+# Heavily modified by JWW for Crypto++.
+# Updated by Skycoder42 for current recommendations for Android.
+# Modified by JWW for LDNS.
+# ====================================================================
+
+#########################################
+##### Some validation #####
+#########################################
+
+if [ -z "$ANDROID_API" ]; then
+ echo "ANDROID_API is not set. Please set it"
+ [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1
+fi
+
+if [ -z "$ANDROID_CPU" ]; then
+ echo "ANDROID_CPU is not set. Please set it"
+ [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1
+fi
+
+if [ ! -d "$ANDROID_NDK_ROOT" ]; then
+ echo "ERROR: ANDROID_NDK_ROOT is not a valid path. Please set it."
+ echo "NDK root is $ANDROID_NDK_ROOT"
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# cryptest-android.sh may run this script without sourcing.
+if [ "$0" = "${BASH_SOURCE[0]}" ]; then
+ echo "setenv-android.sh is usually sourced, but not this time."
+fi
+
+#####################################################################
+
+# Need to set THIS_HOST to darwin-x86_64, linux-x86_64,
+# windows, or windows-x86_64
+
+if [[ "$(uname -s | grep -i -c darwin)" -ne 0 ]]; then
+ THIS_HOST=darwin-x86_64
+elif [[ "$(uname -s | grep -i -c linux)" -ne 0 ]]; then
+ THIS_HOST=linux-x86_64
+else
+ echo "ERROR: Unknown host"
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+ANDROID_TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$THIS_HOST/bin"
+ANDROID_SYSROOT="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$THIS_HOST/sysroot"
+
+# Error checking
+if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
+ echo "ERROR: ANDROID_TOOLCHAIN is not a valid path. Please set it."
+ echo "Path is $ANDROID_TOOLCHAIN"
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -d "$ANDROID_SYSROOT" ]; then
+ echo "ERROR: ANDROID_SYSROOT is not a valid path. Please set it."
+ echo "Path is $ANDROID_SYSROOT"
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+#####################################################################
+
+THE_ARCH=$(tr '[:upper:]' '[:lower:]' <<< "$ANDROID_CPU")
+
+# https://developer.android.com/ndk/guides/abis.html
+case "$THE_ARCH" in
+ armv7*|armeabi*)
+ CC="armv7a-linux-androideabi$ANDROID_API-clang"
+ CXX="armv7a-linux-androideabi$ANDROID_API-clang++"
+ LD="arm-linux-androideabi-ld"
+ AS="arm-linux-androideabi-as"
+ AR="arm-linux-androideabi-ar"
+ RANLIB="arm-linux-androideabi-ranlib"
+ STRIP="arm-linux-androideabi-strip"
+
+ CFLAGS="-march=armv7-a -mthumb -mfloat-abi=softfp -funwind-tables -fexceptions"
+ CXXFLAGS="-march=armv7-a -mthumb -mfloat-abi=softfp -funwind-tables -fexceptions -frtti"
+ ;;
+
+ armv8*|aarch64|arm64)
+ CC="aarch64-linux-android$ANDROID_API-clang"
+ CXX="aarch64-linux-android$ANDROID_API-clang++"
+ LD="aarch64-linux-android-ld"
+ AS="aarch64-linux-android-as"
+ AR="aarch64-linux-android-ar"
+ RANLIB="aarch64-linux-android-ranlib"
+ STRIP="aarch64-linux-android-strip"
+
+ CFLAGS="-funwind-tables -fexceptions"
+ CXXFLAGS="-funwind-tables -fexceptions -frtti"
+ ;;
+
+ x86)
+ CC="i686-linux-android$ANDROID_API-clang"
+ CXX="i686-linux-android$ANDROID_API-clang++"
+ LD="i686-linux-android-ld"
+ AS="i686-linux-android-as"
+ AR="i686-linux-android-ar"
+ RANLIB="i686-linux-android-ranlib"
+ STRIP="i686-linux-android-strip"
+
+ CFLAGS="-mtune=intel -mssse3 -mfpmath=sse -funwind-tables -fexceptions"
+ CXXFLAGS="-mtune=intel -mssse3 -mfpmath=sse -funwind-tables -fexceptions -frtti"
+ ;;
+
+ x86_64|x64)
+ CC="x86_64-linux-android$ANDROID_API-clang"
+ CXX="x86_64-linux-android$ANDROID_API-clang++"
+ LD="x86_64-linux-android-ld"
+ AS="x86_64-linux-android-as"
+ AR="x86_64-linux-android-ar"
+ RANLIB="x86_64-linux-android-ranlib"
+ STRIP="x86_64-linux-android-strip"
+
+ CFLAGS="-march=x86-64 -msse4.2 -mpopcnt -mtune=intel -funwind-tables -fexceptions"
+ CXXFLAGS="-march=x86-64 -msse4.2 -mpopcnt -mtune=intel -funwind-tables -fexceptions -frtti"
+ ;;
+
+ *)
+ echo "ERROR: Unknown architecture $ANDROID_CPU"
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+ ;;
+esac
+
+#####################################################################
+
+# Error checking
+if [ ! -e "$ANDROID_TOOLCHAIN/$CC" ]; then
+ echo "ERROR: Failed to find Android clang. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$ANDROID_TOOLCHAIN/$CXX" ]; then
+ echo "ERROR: Failed to find Android clang++. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$ANDROID_TOOLCHAIN/$RANLIB" ]; then
+ echo "ERROR: Failed to find Android ranlib. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$ANDROID_TOOLCHAIN/$AR" ]; then
+ echo "ERROR: Failed to find Android ar. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$ANDROID_TOOLCHAIN/$AS" ]; then
+ echo "ERROR: Failed to find Android as. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$ANDROID_TOOLCHAIN/$LD" ]; then
+ echo "ERROR: Failed to find Android ld. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+#####################################################################
+
+LENGTH=${#ANDROID_TOOLCHAIN}
+SUBSTR=${PATH:0:$LENGTH}
+if [ "$SUBSTR" != "$ANDROID_TOOLCHAIN" ]; then
+ export PATH="$ANDROID_TOOLCHAIN:$PATH"
+fi
+
+#####################################################################
+
+export CPP CC CXX LD AS AR RANLIB STRIP
+export ANDROID_SYSROOT="$AOSP_SYSROOT"
+export CPPFLAGS="-D__ANDROID_API__=$ANDROID_API"
+export CFLAGS="$CFLAGS --sysroot=$AOSP_SYSROOT"
+export CXXFLAGS="$CXXFLAGS -stdlib=libc++ --sysroot=$AOSP_SYSROOT"
+
+#####################################################################
+
+echo "ANDROID_TOOLCHAIN: $ANDROID_TOOLCHAIN"
+
+echo "CPP: $(command -v "$CPP")"
+echo "CC: $(command -v "$CC")"
+echo "CXX: $(command -v "$CXX")"
+echo "LD: $(command -v "$LD")"
+echo "AS: $(command -v "$AS")"
+echo "AR: $(command -v "$AR")"
+
+echo "ANDROID_SYSROOT: $ANDROID_SYSROOT"
+
+echo "CPPFLAGS: $CPPFLAGS"
+echo "CFLAGS: $CFLAGS"
+echo "CXXFLAGS: $CXXFLAGS"
+
+[ "$0" = "${BASH_SOURCE[0]}" ] && exit 0 || return 0
diff --git a/contrib/build-solaris.sh b/contrib/build-solaris.sh
index c4719de3c638..c4719de3c638 100755..100644
--- a/contrib/build-solaris.sh
+++ b/contrib/build-solaris.sh
diff --git a/contrib/ios/15-ios.conf b/contrib/ios/15-ios.conf
new file mode 100644
index 000000000000..364ed6ebfd29
--- /dev/null
+++ b/contrib/ios/15-ios.conf
@@ -0,0 +1,41 @@
+#### iPhoneOS/iOS
+#
+# It takes recent enough Xcode to use following two targets. It shouldn't
+# be a problem by now, but if they don't work, original targets below
+# that depend on manual definition of environment variables should still
+# work...
+#
+my %targets = (
+ "ios-common" => {
+ template => 1,
+ inherit_from => [ "darwin-common" ],
+ sys_id => "iOS",
+ disable => [ "engine", "async" ],
+ },
+ "ios-xcrun" => {
+ inherit_from => [ "ios-common", asm("armv4_asm") ],
+ bn_ops => [ "BN_LLONG", "RC4_CHAR" ],
+ perlasm_scheme => "ios32",
+ },
+ "ios64-xcrun" => {
+ inherit_from => [ "ios-common", asm("aarch64_asm") ],
+ bn_ops => [ "SIXTY_FOUR_BIT_LONG", "RC4_CHAR" ],
+ perlasm_scheme => "ios64",
+ },
+ "iossimulator-xcrun" => {
+ inherit_from => [ "ios-common" ],
+ },
+
+ "iphoneos-cross" => {
+ inherit_from => [ "ios-common" ],
+ cflags => add("-Wall -fno-common"),
+ },
+ "ios-cross" => {
+ inherit_from => [ "ios-xcrun" ],
+ cflags => add("-Wall -fno-common"),
+ },
+ "ios64-cross" => {
+ inherit_from => [ "ios64-xcrun" ],
+ cflags => add("-Wall -fno-common"),
+ },
+);
diff --git a/contrib/ios/bootstrap_ldns.sh b/contrib/ios/bootstrap_ldns.sh
new file mode 100755
index 000000000000..7e423030ccae
--- /dev/null
+++ b/contrib/ios/bootstrap_ldns.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+if ! git submodule update --init; then
+ echo "Failed to init submodule"
+ exit 1
+fi
+
+echo "AUTOTOOLS_BUILD: $AUTOTOOLS_BUILD"
+echo "AUTOTOOLS_HOST: $AUTOTOOLS_HOST"
+
+# libtool complains about our updated config.guess and config.sub.
+# Remove them to get through bootstrap. Re-add them after libtoolize.
+
+echo "Running libtoolize"
+if [ -n "$(command -v glibtoolize)" ]; then
+ rm -f config.guess config.sub
+ if ! glibtoolize -ci ; then
+ echo "Failed to libtoolize (glibtoolize)"
+ exit 1
+ fi
+elif [ -n "$(command -v libtoolize)" ]; then
+ rm -f config.guess config.sub
+ if ! libtoolize -ci ; then
+ echo "Failed to libtoolize (libtoolize)"
+ exit 1
+ fi
+else
+ echo "Failed to find a libtool"
+ exit 1
+fi
+
+echo "Updating config.guess"
+if ! wget -q -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'; then
+ echo "Failed to download config.guess"
+fi
+
+echo "Updating config.sub"
+if ! wget -q -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'; then
+ echo "Failed to download config.sub"
+fi
+
+echo "Fixing config permissions"
+chmod a+x config.guess config.sub
+if [ -n "$(command -v xattr 2>/dev/null)" ]; then
+ xattr -d com.apple.quarantine config.guess 2>/dev/null
+ xattr -d com.apple.quarantine config.sub 2>/dev/null
+fi
+
+echo "Running autoreconf"
+if ! autoreconf -fi ; then
+ echo "Failed to autoreconf"
+ exit 1
+fi
+
+exit 0
diff --git a/contrib/ios/install_openssl.sh b/contrib/ios/install_openssl.sh
new file mode 100755
index 000000000000..fc5af4d47c48
--- /dev/null
+++ b/contrib/ios/install_openssl.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+
+echo "Downloading OpenSSL"
+if ! curl -L -k -s -o openssl-1.1.1d.tar.gz https://www.openssl.org/source/openssl-1.1.1d.tar.gz;
+then
+ echo "Failed to download OpenSSL"
+ exit 1
+fi
+
+echo "Unpacking OpenSSL"
+rm -rf ./openssl-1.1.1d
+if ! tar -xf openssl-1.1.1d.tar.gz;
+then
+ echo "Failed to unpack OpenSSL"
+ exit 1
+fi
+
+cd openssl-1.1.1d || exit 1
+
+if ! cp ../contrib/ios/15-ios.conf Configurations/; then
+ echo "Failed to copy OpenSSL ios config"
+ exit 1
+fi
+
+# ocsp.c:947:23: error: 'fork' is unavailable: not available on tvOS
+# ocsp.c:978:23: error: 'fork' is unavailable: not available on watchOS
+# Also see https://github.com/openssl/openssl/issues/7607.
+if ! patch -u -p0 < ../contrib/ios/openssl.patch; then
+ echo "Failed to patch OpenSSL"
+ exit 1
+fi
+
+echo "Configuring OpenSSL"
+if ! ./Configure "$OPENSSL_HOST" -DNO_FORK no-comp no-asm no-hw no-engine no-tests no-unit-test \
+ --prefix="$IOS_PREFIX" --openssldir="$IOS_PREFIX"; then
+ echo "Failed to configure OpenSSL"
+ exit 1
+fi
+
+echo "Building OpenSSL"
+if ! make; then
+ echo "Failed to build OpenSSL"
+ exit 1
+fi
+
+echo "Installing OpenSSL"
+if ! make install_sw; then
+ echo "Failed to install OpenSSL"
+ exit 1
+fi
+
+exit 0
diff --git a/contrib/ios/install_tools.sh b/contrib/ios/install_tools.sh
new file mode 100755
index 000000000000..796833d83143
--- /dev/null
+++ b/contrib/ios/install_tools.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+# This step should install tools needed for all packages - OpenSSL and LDNS
+# When running on Travis, Homebrew fails in unusual ways, hence '|| true'.
+# https://travis-ci.community/t/homebrew-fails-because-an-automake-update-is-an-error/7831/3
+echo "Updating tools"
+brew update 1>/dev/null || true
+echo "Installing tools"
+brew install autoconf automake libtool pkg-config curl perl 1>/dev/null || true
diff --git a/contrib/ios/openssl.patch b/contrib/ios/openssl.patch
new file mode 100644
index 000000000000..58cef232c9e9
--- /dev/null
+++ b/contrib/ios/openssl.patch
@@ -0,0 +1,48 @@
+--- apps/speed.c
++++ apps/speed.c
+@@ -99,6 +99,13 @@
+ #endif
+ #include <openssl/modes.h>
+
++/* fork() breaks AppleTVOS, WatchOS, AppleTVSimulator and WatchSimulator */
++/* Users should configure with -DNO_FORK */
++#if defined(NO_FORK)
++# undef HAVE_FORK
++# define HAVE_FORK 0
++#endif
++
+ #ifndef HAVE_FORK
+ # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VXWORKS)
+ # define HAVE_FORK 0
+@@ -110,6 +117,7 @@
+ #if HAVE_FORK
+ # undef NO_FORK
+ #else
++# undef NO_FORK
+ # define NO_FORK
+ #endif
+
+--- apps/ocsp.c
++++ apps/ocsp.c
+@@ -36,6 +36,13 @@
+ # include <openssl/x509v3.h>
+ # include <openssl/rand.h>
+
++/* fork() breaks AppleTVOS, WatchOS, AppleTVSimulator and WatchSimulator */
++/* Users should configure with -DNO_FORK */
++#if defined(NO_FORK)
++# undef HAVE_FORK
++# define HAVE_FORK 0
++#endif
++
+ #ifndef HAVE_FORK
+ # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS)
+ # define HAVE_FORK 0
+@@ -47,6 +54,7 @@
+ #if HAVE_FORK
+ # undef NO_FORK
+ #else
++# undef NO_FORK
+ # define NO_FORK
+ #endif
+
diff --git a/contrib/ios/setenv_ios.sh b/contrib/ios/setenv_ios.sh
new file mode 100755
index 000000000000..8f49f328d163
--- /dev/null
+++ b/contrib/ios/setenv_ios.sh
@@ -0,0 +1,274 @@
+#!/usr/bin/env bash
+
+# ====================================================================
+# Sets the cross compile environment for Xcode/iOS
+#
+# Based upon OpenSSL's setenv-ios.sh by TH, JW, and SM.
+# Heavily modified by JWW for Crypto++.
+# Modified by JWW for LDNS.
+# ====================================================================
+
+#########################################
+##### Some validation #####
+#########################################
+
+# In the past we could mostly infer arch or cpu from the SDK (and
+# mostly vice-versa). Nowadays we need it set for us because Apple
+# platforms can be either 32-bit or 64-bit.
+
+if [ -z "$IOS_SDK" ]; then
+ echo "IOS_SDK is not set. Please set it"
+ [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1
+fi
+
+if [ -z "$IOS_CPU" ]; then
+ echo "IOS_CPU is not set. Please set it"
+ [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1
+fi
+
+# cryptest-ios.sh may run this script without sourcing.
+if [ "$0" = "${BASH_SOURCE[0]}" ]; then
+ echo "setenv-ios.sh is usually sourced, but not this time."
+fi
+
+#########################################
+##### Small Fixups, if needed #####
+#########################################
+
+if [[ "$IOS_SDK" == "iPhone" ]]; then
+ IOS_SDK=iPhoneOS
+fi
+
+if [[ "$IOS_SDK" == "iPhoneOSSimulator" ]]; then
+ IOS_SDK=iPhoneSimulator
+fi
+
+if [[ "$IOS_SDK" == "TV" || "$IOS_SDK" == "AppleTV" ]]; then
+ IOS_SDK=AppleTVOS
+fi
+
+if [[ "$IOS_SDK" == "Watch" || "$IOS_SDK" == "AppleWatch" ]]; then
+ IOS_SDK=WatchOS
+fi
+
+if [[ "$IOS_CPU" == "aarch64" || "$IOS_CPU" == "armv8"* ]] ; then
+ IOS_CPU=arm64
+fi
+
+########################################
+##### Environment #####
+########################################
+
+# The flags below were tested with Xcode 8 on Travis. If
+# you use downlevel versions of Xcode, then you can push
+# xxx-version-min=n lower. For example, Xcode 6 can use
+# -miphoneos-version-min=5.
+
+# iPhones can be either 32-bit or 64-bit
+if [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "armv7"* ]]; then
+ MIN_VER=-miphoneos-version-min=6
+elif [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "arm64" ]]; then
+ MIN_VER=-miphoneos-version-min=6
+
+# Fixups for convenience
+elif [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "i386" ]]; then
+ IOS_SDK=iPhoneSimulator
+ # MIN_VER=-miphoneos-version-min=6
+ MIN_VER=-miphonesimulator-version-min=6
+elif [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "x86_64" ]]; then
+ IOS_SDK=iPhoneSimulator
+ # MIN_VER=-miphoneos-version-min=6
+ MIN_VER=-miphonesimulator-version-min=6
+
+# Simulator builds
+elif [[ "$IOS_SDK" == "iPhoneSimulator" && "$IOS_CPU" == "i386" ]]; then
+ MIN_VER=-miphonesimulator-version-min=6
+elif [[ "$IOS_SDK" == "iPhoneSimulator" && "$IOS_CPU" == "x86_64" ]]; then
+ MIN_VER=-miphonesimulator-version-min=6
+
+# Apple TV can be 32-bit Intel (1st gen), 32-bit ARM (2nd, 3rd gen) or 64-bit ARM (4th gen)
+elif [[ "$IOS_SDK" == "AppleTVOS" && "$IOS_CPU" == "i386" ]]; then
+ MIN_VER=-mappletvos-version-min=6
+elif [[ "$IOS_SDK" == "AppleTVOS" && "$IOS_CPU" == "armv7"* ]]; then
+ MIN_VER=-mappletvos-version-min=6
+elif [[ "$IOS_SDK" == "AppleTVOS" && "$IOS_CPU" == "arm64" ]]; then
+ MIN_VER=-mappletvos-version-min=6
+
+# Simulator builds
+elif [[ "$IOS_SDK" == "AppleTVSimulator" && "$IOS_CPU" == "i386" ]]; then
+ MIN_VER=-mappletvsimulator-version-min=6
+elif [[ "$IOS_SDK" == "AppleTVSimulator" && "$IOS_CPU" == "x86_64" ]]; then
+ MIN_VER=-mappletvsimulator-version-min=6
+
+# Watch can be either 32-bit or 64-bit ARM. TODO: figure out which
+# -mwatchos-version-min=n is needed for arm64. 9 is not enough.
+elif [[ "$IOS_SDK" == "WatchOS" && "$IOS_CPU" == "armv7"* ]]; then
+ MIN_VER=-mwatchos-version-min=6
+elif [[ "$IOS_SDK" == "WatchOS" && "$IOS_CPU" == "arm64" ]]; then
+ MIN_VER=-mwatchos-version-min=10
+
+# Simulator builds. TODO: figure out which -watchos-version-min=n
+# is needed for arm64. 6 compiles and links, but is it correct?
+elif [[ "$IOS_SDK" == "WatchSimulator" && "$IOS_CPU" == "i386" ]]; then
+ MIN_VER=-mwatchsimulator-version-min=6
+elif [[ "$IOS_SDK" == "WatchSimulator" && "$IOS_CPU" == "x86_64" ]]; then
+ MIN_VER=-mwatchsimulator-version-min=6
+
+# And the final catch-all
+else
+ echo "IOS_SDK and IOS_CPU are not valid. Please fix them"
+ [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1
+fi
+
+#####################################################################
+
+# Xcode 6 and below cannot handle -miphonesimulator-version-min
+# Fix it so the simulator will compile as expected. This trick
+# may work on other SDKs, but it was not tested.
+
+if [ -n "$(command -v xcodebuild 2>/dev/null)" ]; then
+ # Output of xcodebuild is similar to "Xcode 6.2". The first cut gets
+ # the dotted decimal value. The second cut gets the major version.
+ XCODE_VERSION=$(xcodebuild -version 2>/dev/null | head -n 1 | cut -f2 -d" " | cut -f1 -d".")
+ if [ -z "$XCODE_VERSION" ]; then XCODE_VERSION=100; fi
+
+ if [ "$XCODE_VERSION" -le 6 ]; then
+ MIN_VER="${MIN_VER//iphonesimulator/iphoneos}"
+ fi
+fi
+
+#####################################################################
+
+# Allow a user override? I think we should be doing this. The use case is,
+# move /Applications/Xcode somewhere else for a side-by-side installation.
+if [ -z "${XCODE_DEVELOPER-}" ]; then
+ XCODE_DEVELOPER=$(xcode-select -print-path 2>/dev/null)
+fi
+
+if [ ! -d "$XCODE_DEVELOPER" ]; then
+ echo "ERROR: unable to find XCODE_DEVELOPER directory."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# XCODE_DEVELOPER_SDK is the SDK location.
+XCODE_DEVELOPER_SDK="$XCODE_DEVELOPER/Platforms/$IOS_SDK.platform"
+
+if [ ! -d "$XCODE_DEVELOPER_SDK" ]; then
+ echo "ERROR: unable to find XCODE_DEVELOPER_SDK directory."
+ echo " Is the SDK supported by Xcode and installed?"
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# XCODE_TOOLCHAIN is the location of the actual compiler tools.
+if [ -d "$XCODE_DEVELOPER/Toolchains/XcodeDefault.xctoolchain/usr/bin/" ]; then
+ XCODE_TOOLCHAIN="$XCODE_DEVELOPER/Toolchains/XcodeDefault.xctoolchain/usr/bin/"
+elif [ -d "$XCODE_DEVELOPER_SDK/Developer/usr/bin/" ]; then
+ XCODE_TOOLCHAIN="$XCODE_DEVELOPER_SDK/Developer/usr/bin/"
+fi
+
+if [ -z "$XCODE_TOOLCHAIN" ] || [ ! -d "$XCODE_TOOLCHAIN" ]; then
+ echo "ERROR: unable to find Xcode cross-compiler tools."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# XCODE_SDK is the SDK name/version being used - adjust the list as appropriate.
+# For example, remove 4.3, 6.2, and 6.1 if they are not installed. We go back to
+# the 1.0 SDKs because Apple WatchOS uses low numbers, like 2.0 and 2.1.
+XCODE_SDK=
+for i in $(seq -f "%.1f" 30.0 -0.1 1.0)
+do
+ if [ -d "$XCODE_DEVELOPER_SDK/Developer/SDKs/$IOS_SDK$i.sdk" ]; then
+ XCODE_SDK="$IOS_SDK$i.sdk"
+ break
+ fi
+done
+
+# Error checking
+if [ -z "$XCODE_SDK" ]; then
+ echo "ERROR: unable to find a SDK."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+IOS_SYSROOT="$XCODE_DEVELOPER_SDK/Developer/SDKs/$XCODE_SDK"
+
+if [ -z "$IOS_SYSROOT" ] || [ ! -d "$IOS_SYSROOT" ]; then
+ echo "ERROR: unable to find IOS_SYSROOT directory."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+#####################################################################
+
+# We want to set AR=libtool and ARFLAGS="-static -o",
+# but I am not sure Autotools can handle it.
+CPP=cpp; CC=clang; CXX=clang++; LD=ld
+AS=as; AR=ar; RANLIB=ranlib; STRIP=strip
+
+# Error checking
+if [ ! -e "$XCODE_TOOLCHAIN/$CC" ]; then
+ echo "ERROR: Failed to find iOS clang. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$XCODE_TOOLCHAIN/$CXX" ]; then
+ echo "ERROR: Failed to find iOS clang++. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$XCODE_TOOLCHAIN/$RANLIB" ]; then
+ echo "ERROR: Failed to find iOS ranlib. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$XCODE_TOOLCHAIN/$AR" ]; then
+ echo "ERROR: Failed to find iOS ar. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$XCODE_TOOLCHAIN/$AS" ]; then
+ echo "ERROR: Failed to find iOS as. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+# Error checking
+if [ ! -e "$XCODE_TOOLCHAIN/$LD" ]; then
+ echo "ERROR: Failed to find iOS ld. Please edit this script."
+ [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1
+fi
+
+#####################################################################
+
+LENGTH=${#XCODE_TOOLCHAIN}
+SUBSTR=${PATH:0:$LENGTH}
+if [ "$SUBSTR" != "$XCODE_TOOLCHAIN" ]; then
+ export PATH="$XCODE_TOOLCHAIN":"$PATH"
+fi
+
+#####################################################################
+
+export CPP CC CXX LD AS AR RANLIB STRIP
+export IOS_SYSROOT
+export CFLAGS="-arch $IOS_CPU $MIN_VER --sysroot=$IOS_SYSROOT"
+export CXXFLAGS="-arch $IOS_CPU $MIN_VER -stdlib-libc++ --sysroot=$IOS_SYSROOT"
+
+#####################################################################
+
+echo "XCODE_TOOLCHAIN: $XCODE_TOOLCHAIN"
+
+echo "CPP: $(command -v "$CPP")"
+echo "CC: $(command -v "$CC")"
+echo "CXX: $(command -v "$CXX")"
+echo "LD: $(command -v "$LD")"
+echo "AS: $(command -v "$AS")"
+echo "AR: $(command -v "$AR")"
+
+echo "IOS_SYSROOT: $IOS_SYSROOT"
+
+echo "CPPFLAGS: $CPPFLAGS"
+echo "CFLAGS: $CFLAGS"
+echo "CXXFLAGS: $CXXFLAGS"
+
+[ "$0" = "${BASH_SOURCE[0]}" ] && exit 0 || return 0
diff --git a/contrib/ldnsx/README b/contrib/ldnsx/README
index 66f89d2df429..780cf83691a9 100644
--- a/contrib/ldnsx/README
+++ b/contrib/ldnsx/README
@@ -1,8 +1,8 @@
LDNSX: Easy DNS (including DNSSEC) via ldns.
-ldns is a great library. It is a powerfull tool for
+ldns is a great library. It is a powerful tool for
working with DNS. python-ldns it is a straight up clone of the C
-interface, howver that is not a very good interface for python. Its
+interface, however that is not a very good interface for python. Its
documentation is incomplete and some functions don't work as
described. And some objects don't have a full python API.
diff --git a/contrib/ldnsx/ldnsx.py b/contrib/ldnsx/ldnsx.py
index 9c28734b4953..e2bd0e517e31 100644
--- a/contrib/ldnsx/ldnsx.py
+++ b/contrib/ldnsx/ldnsx.py
@@ -4,9 +4,9 @@
""" Easy DNS (including DNSSEC) via ldns.
-ldns is a great library. It is a powerfull tool for
+ldns is a great library. It is a powerful tool for
working with DNS. python-ldns it is a straight up clone of the C
-interface, howver that is not a very good interface for python. Its
+interface, however that is not a very good interface for python. Its
documentation is incomplete and some functions don't work as
described. And some objects don't have a full python API.
@@ -204,7 +204,7 @@ class resolver:
defaults to settings from /etc/resolv.conf
* dnssec -- should the resolver try and use dnssec or not?
* tcp -- should the resolver use TCP
- 'auto' is a depricated work around for old ldns problems
+ 'auto' is a deprecated work around for old ldns problems
* port -- the port to use, must be the same for all nameservers
"""
@@ -238,7 +238,7 @@ class resolver:
* rr_type -- the record type to query for
* rr_class -- the class to query for, defaults to IN (Internet)
* flags -- the flags to send the query with
- * tries -- the number of times to attempt to acheive query in case of packet loss, etc
+ * tries -- the number of times to attempt to achieve query in case of packet loss, etc
**Examples**
@@ -284,7 +284,7 @@ class resolver:
If the version of ldnsx you are using is old, it is possible that there could be new rr_types that
we don't recognise mnemonic for. You can still use the number XXX or the string "TYPEXXX". To
- determine what rr_type menmonics we support, please refer to resolver.supported_rr_types()
+ determine what rr_type mnemonics we support, please refer to resolver.supported_rr_types()
"""
# Determine rr_type int
@@ -320,7 +320,7 @@ class resolver:
pkt = self._ldns_resolver.query(name, _rr_type, _rr_class, _flags)
except KeyboardInterrupt: #Since so much time is spent waiting on ldns, this is very common place for Ctr-C to fall
raise
- except: #Since the ldns exceptiion is not very descriptive...
+ except: #Since the ldns exception is not very descriptive...
raise Exception("ldns backend ran into problems. Likely, the name you were querying for, %s, was invalid." % name)
#Deal with failed queries
if not pkt:
@@ -384,7 +384,7 @@ class resolver:
>>> tlds.append(rr.owner())
"""
- #Dname seems to be unecessary on some computers, but it is on others. Avoid bugs.
+ #Dname seems to be unnecessary on some computers, but it is on others. Avoid bugs.
if self._ldns_resolver.axfr_start(ldns.ldns_dname(name), ldns.LDNS_RR_CLASS_IN) != ldns.LDNS_STATUS_OK:
raise Exception("Starting AXFR failed. Error: %s" % ldns.ldns_get_errorstr_by_id(status))
pres = self._ldns_resolver.axfr_next()
@@ -497,7 +497,7 @@ class packet:
Example returned value: "NOERROR"
- possilbe rcodes (via ldns): "FORMERR", "MASK", "NOERROR",
+ possible rcodes (via ldns): "FORMERR", "MASK", "NOERROR",
"NOTAUTH", "NOTIMPL", "NOTZONE", "NXDOMAIN",
"NXRSET", "REFUSED", "SERVFAIL", "SHIFT",
"YXDOMAIN", "YXRRSET"
@@ -823,7 +823,7 @@ class resource_record:
return -1
def protocol(self):
- """ Returns proticol of the DNSKEY"""
+ """ Returns protocol of the DNSKEY"""
t = self.rr_type()
if t == "DNSKEY":
return int(self[5])
diff --git a/contrib/ldnsx/source/index.rst b/contrib/ldnsx/source/index.rst
index 43de8b5d6134..efa2a77f32ed 100644
--- a/contrib/ldnsx/source/index.rst
+++ b/contrib/ldnsx/source/index.rst
@@ -3,9 +3,9 @@ Welcome to ldnsx's documentation!
LDNSX: Easy DNS (including DNSSEC) via ldns.
-ldns is a great library. It is a powerfull tool for
+ldns is a great library. It is a powerful tool for
working with DNS. python-ldns it is a straight up clone of the C
-interface, howver that is not a very good interface for python. Its
+interface, however that is not a very good interface for python. Its
documentation is incomplete and some functions don't work as
described. And some objects don't have a full python API.
diff --git a/contrib/python/Changelog b/contrib/python/Changelog
index 7c4ccd1187d4..4b449a84ab2c 100644
--- a/contrib/python/Changelog
+++ b/contrib/python/Changelog
@@ -2,7 +2,7 @@
* Added ldns_rdf.data_as_bytearray(). The method returns a bytearray object
containing rdf data.
* Changed the behaviour of ldns_resolver.trusted_key() in order to prevent
- memory corrupotion and leaks.
+ memory corruption and leaks.
* Fixed memory leaks when destroying ldns_resolver.
* Removed ldns_pkt.section_count(), ldns_resolver.set_searchlist_count()
because it is marked static in the library.
diff --git a/contrib/python/docs/source/examples/example1.rst b/contrib/python/docs/source/examples/example1.rst
index b44141759f5a..891e0853f85c 100644
--- a/contrib/python/docs/source/examples/example1.rst
+++ b/contrib/python/docs/source/examples/example1.rst
@@ -50,7 +50,7 @@ In the third step we tell the resolver to query for our domain, type MX, of clas
pkt = resolver.query(dname, ldns.LDNS_RR_TYPE_MX, ldns.LDNS_RR_CLASS_IN, ldns.LDNS_RD)
The function should return a packet if everything goes well and this packet will contain resource records we asked for.
-Note that there exists a simplier way. Instead of using a dname variable, we can use a string which will be automatically converted.
+Note that there exists a simpler way. Instead of using a dname variable, we can use a string which will be automatically converted.
::
pkt = resolver.query("fit.vutbr.cz", ldns.LDNS_RR_TYPE_MX, ldns.LDNS_RR_CLASS_IN, ldns.LDNS_RD)
diff --git a/contrib/python/docs/source/examples/example8.rst b/contrib/python/docs/source/examples/example8.rst
index 6fc550a86045..2cd1daf2dd47 100644
--- a/contrib/python/docs/source/examples/example8.rst
+++ b/contrib/python/docs/source/examples/example8.rst
@@ -10,8 +10,8 @@ In order to be able sign a zone file, you have to generate a key-pair using ``ld
Signing consists of three steps
-1. In the first step, the content of a zone file is readed and parsed. This can be done using :class:`ldns.ldns_zone` class.
+1. In the first step, the content of a zone file is read and parsed. This can be done using :class:`ldns.ldns_zone` class.
-2. In the second step, the private and public key is readed and public key is inserted into zone (as DNSKEY).
+2. In the second step, the private and public key is read and public key is inserted into zone (as DNSKEY).
-3. In the last step, the DNSSEC zone instace is created and all the RRs from zone file are copied here. Then, all the records are signed using :meth:`ldns.ldns_zone.sign` method. If the signing was successfull, the content of DNSSEC zone is written to a file.
+3. In the last step, the DNSSEC zone instance is created and all the RRs from zone file are copied here. Then, all the records are signed using :meth:`ldns.ldns_zone.sign` method. If the signing was successful, the content of DNSSEC zone is written to a file.
diff --git a/contrib/python/docs/source/install.rst b/contrib/python/docs/source/install.rst
index 03d0f53facbf..27bf07652834 100644
--- a/contrib/python/docs/source/install.rst
+++ b/contrib/python/docs/source/install.rst
@@ -14,7 +14,7 @@ is required.
**Download**
-The lates source codes can be downloaded from `here`_.
+The latest source codes can be downloaded from `here`_.
.. _here: http://nlnetlabs.nl/projects/ldns/
diff --git a/contrib/python/examples/test_buffer.py b/contrib/python/examples/test_buffer.py
index 472bd6fdbf4d..7bdf413e5c0b 100755
--- a/contrib/python/examples/test_buffer.py
+++ b/contrib/python/examples/test_buffer.py
@@ -230,7 +230,7 @@ if True:
#if not error_detected:
if True:
- mehod_name = "ldns_buffer.flip()"
+ method_name = "ldns_buffer.flip()"
buf.printf("abcdef")
try:
buf.flip()
diff --git a/contrib/python/examples/test_dname.py b/contrib/python/examples/test_dname.py
index 07e0a85070d6..4603543f1b31 100755
--- a/contrib/python/examples/test_dname.py
+++ b/contrib/python/examples/test_dname.py
@@ -44,7 +44,7 @@ if True:
except:
set_error()
#
- # Error when printing a dname wich was created fron an empty string.
+ # Error when printing a dname which was created from an empty string.
# Must find out why.
#
try:
diff --git a/contrib/python/examples/test_rr.py b/contrib/python/examples/test_rr.py
index 07ba0e743073..07ba0e743073 100644..100755
--- a/contrib/python/examples/test_rr.py
+++ b/contrib/python/examples/test_rr.py
diff --git a/contrib/python/ldns.i b/contrib/python/ldns.i
index 0635c0bac83b..881ba5e858a7 100644
--- a/contrib/python/ldns.i
+++ b/contrib/python/ldns.i
@@ -399,6 +399,28 @@ PyObject* ldns_wire2pkt_(const char *str, int len)
return tuple;
}
+PyObject* ldns_pkt2wire_(const ldns_pkt *pkt)
+ //returns tuple (status, result)
+ {
+ PyObject *resultobj = 0;
+ uint8_t *arg1 = NULL;
+ size_t arg3;
+ ldns_status result;
+ PyObject* tuple;
+
+ result = (ldns_status)ldns_pkt2wire(&arg1,pkt,&arg3);
+ tuple = PyTuple_New(2);
+ PyTuple_SetItem(tuple, 0, SWIG_From_int(result));
+ if (result == LDNS_STATUS_OK)
+ PyTuple_SetItem(tuple, 1, SWIG_FromCharPtrAndSize((char *)arg1, arg3));
+ else {
+ Py_INCREF(Py_None);
+ PyTuple_SetItem(tuple, 1, Py_None);
+ }
+ LDNS_FREE(arg1);
+ return tuple;
+}
+
%}
%pythoncode %{
@@ -408,6 +430,9 @@ def ldns_fetch_valid_domain_keys(res, domain, keys):
def ldns_wire2pkt(data):
return _ldns.ldns_wire2pkt_(data)
+def ldns_pkt2wire(data):
+ return _ldns.ldns_pkt2wire_(data)
+
def ldns_rr_iter_frm_fp_l(input_file):
"""Creates an iterator (generator) that returns individual parsed
RRs from an open zone file."""
diff --git a/contrib/python/ldns_buffer.i b/contrib/python/ldns_buffer.i
index f9825c2907b3..5c2d583bea4d 100644
--- a/contrib/python/ldns_buffer.i
+++ b/contrib/python/ldns_buffer.i
@@ -483,7 +483,7 @@
:param amount: Amount to use.
:type amount: positive integer
:throws TypeError: When `amount` of non-integer type.
- :return: (bool) hether this failed or succeeded.
+ :return: (bool) Whether this failed or succeeded.
"""
return _ldns.ldns_buffer_reserve(self, amount)
#parameters: ldns_buffer *, size_t,
diff --git a/contrib/python/ldns_dname.i b/contrib/python/ldns_dname.i
index cd3f53ea3351..f63e930c4dc6 100644
--- a/contrib/python/ldns_dname.i
+++ b/contrib/python/ldns_dname.i
@@ -36,7 +36,7 @@
/* ========================================================================= */
/*
- * Not here (with the exception of functions defined in this C code sction),
+ * Not here (with the exception of functions defined in this C code section),
* must be set in ldns_rdf.i.
*/
@@ -46,7 +46,7 @@
/* ========================================================================= */
/*
- * Not here (with the exception of functions defined in this C code sction),
+ * Not here (with the exception of functions defined in this C code section),
* must be set in ldns_rdf.i.
*/
diff --git a/contrib/python/ldns_dnssec.i b/contrib/python/ldns_dnssec.i
index 3c29bb4406c9..90c4e6b4594e 100644
--- a/contrib/python/ldns_dnssec.i
+++ b/contrib/python/ldns_dnssec.i
@@ -163,7 +163,7 @@
@staticmethod
def new_frm_rr(raiseException=True):
- """Create a new instace of dnssec name for the given RR.
+ """Create a new instance of dnssec name for the given RR.
:returns: (ldns_dnssec_name) instance
"""
diff --git a/contrib/python/ldns_key.i b/contrib/python/ldns_key.i
index 93f09c65f64f..dc67e67bf774 100644
--- a/contrib/python/ldns_key.i
+++ b/contrib/python/ldns_key.i
@@ -41,7 +41,7 @@
$result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr($1_key), SWIGTYPE_p_ldns_struct_key, SWIG_POINTER_OWN | 0 ));
}
-%exception ldns_key_set_pubkey_owner(ldns_key *k, ldns_rdf *r) %{ $action Py_INCREF(obj1); %}
+%typemap(argout) ldns_rdf *r "Py_INCREF($input);"
%nodefaultctor ldns_struct_key; //no default constructor & destructor
%nodefaultdtor ldns_struct_key;
@@ -204,7 +204,7 @@ This class can contains all types of keys that are used in DNSSEC. Mostly used t
def expiration(self):
"""return the key's expiration date
- :returns: (uint32_t) the experiration date
+ :returns: (uint32_t) the expiration date
"""
return _ldns.ldns_key_expiration(self)
#parameters: const ldns_key *,
@@ -514,7 +514,7 @@ void _ldns_key_list_free (ldns_key_list* k) {
"""Set the keylist's key count to count.
:param count:
- the cuont
+ the count
"""
_ldns.ldns_key_list_set_key_count(self,count)
#parameters: ldns_key_list *,size_t,
diff --git a/contrib/python/ldns_packet.i b/contrib/python/ldns_packet.i
index eeff4aa2359a..c2d7a3b63cca 100644
--- a/contrib/python/ldns_packet.i
+++ b/contrib/python/ldns_packet.i
@@ -736,7 +736,7 @@ This simple example instances a resolver in order to resolve NS for nic.cz."
"""
Return the packet's edns data.
- :return: (:class:`ldns_rdf`) The ensd data.
+ :return: (:class:`ldns_rdf`) The edns data.
"""
return _ldns._ldns_pkt_edns_data(self)
#parameters: const ldns_pkt *,
@@ -1346,7 +1346,7 @@ This simple example instances a resolver in order to resolve NS for nic.cz."
def set_rcode(self, c):
"""
- Set the packet's respons code.
+ Set the packet's response code.
:param c: The rcode.
:type c: uint8_t
diff --git a/contrib/python/ldns_rdf.i b/contrib/python/ldns_rdf.i
index 22e1c36697ce..5d7448fdc45c 100644
--- a/contrib/python/ldns_rdf.i
+++ b/contrib/python/ldns_rdf.i
@@ -221,6 +221,8 @@
case LDNS_RDF_TYPE_EUI64: return "EUI64";
case LDNS_RDF_TYPE_TAG: return "TAG";
case LDNS_RDF_TYPE_LONG_STR: return "LONG_STR";
+ case LDNS_RDF_TYPE_AMTRELAY: return "AMTRELAY";
+ case LDNS_RDF_TYPE_SVCPARAMS: return "SVCPARAMS";
case LDNS_RDF_TYPE_CERTIFICATE_USAGE:
return "CERTIFICATE_USAGE";
case LDNS_RDF_TYPE_SELECTOR: return "SELECTOR";
@@ -313,8 +315,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
rr = _ldns.ldns_rdf_new_frm_str(rr_type, string)
if (not rr) and raiseException:
- raise Exception("Can't create query packet, " +
- "error: %d" % status)
+ raise Exception("Can't create query packet")
return rr
#
@@ -584,7 +585,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.dname_new_frm_str() method is" +
" scheduled to be deprecated in future releases." +
- " Use ldsn_dname constructor instead.",
+ " Use ldns_dname constructor instead.",
PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_new_frm_str(string)
@@ -607,7 +608,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.absolute() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
if self.get_type() == _ldns.LDNS_RDF_TYPE_DNAME:
string = self.__str__()
@@ -629,7 +630,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.make_canonical() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
_ldns.ldns_dname2canonical(self)
@@ -652,7 +653,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.dname_compare() method is" +
" scheduled to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
#
# The wrapped function generates asserts instead of setting
@@ -684,7 +685,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.cat() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_cat(self, rd2)
#parameters: ldns_rdf *, ldns_rdf *,
@@ -709,7 +710,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.cat_clone() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_cat_clone(self, rd2)
#parameters: const ldns_rdf *, const ldns_rdf *,
@@ -739,7 +740,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.interval() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
#
# The wrapped function generates asserts instead of setting
@@ -778,7 +779,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.is_subdomain() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_is_subdomain(self, parent)
#parameters: const ldns_rdf *, const ldns_rdf *,
@@ -805,7 +806,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.label() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_label(self, labelpos)
#parameters: const ldns_rdf *, uint8_t,
@@ -825,7 +826,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.label_count() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_label_count(self)
#parameters: const ldns_rdf *,
@@ -847,7 +848,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.left_chop() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
return _ldns.ldns_dname_left_chop(self)
#parameters: const ldns_rdf *,
@@ -870,7 +871,7 @@ specified in the (16-bit) type field with a value from ldns_rdf_type."
"""
warnings.warn("The ldns_rdf.reverse() method is scheduled" +
" to be deprecated in future releases." +
- " Convert the ldns_rdf to ldsn_dname and the use its" +
+ " Convert the ldns_rdf to ldns_dname and the use its" +
" methods.", PendingDeprecationWarning, stacklevel=2)
if self.get_type() != _ldns.LDNS_RDF_TYPE_DNAME:
raise Exception("Operand must be a dname rdf.")
diff --git a/contrib/python/ldns_resolver.i b/contrib/python/ldns_resolver.i
index 7081ec36ace0..8468cce3819b 100644
--- a/contrib/python/ldns_resolver.i
+++ b/contrib/python/ldns_resolver.i
@@ -35,7 +35,7 @@
/* SWIG setting and definitions. */
/* ========================================================================= */
-/* Creates temporary instance of (ldns_rersolver *). */
+/* Creates temporary instance of (ldns_resolver *). */
%typemap(in,numinputs=0,noblock=1) (ldns_resolver **r)
{
ldns_resolver *$1_res;
@@ -350,7 +350,7 @@ record."
Creates a resolver object from given file name
:param filename: Name of file which contains resolver
- informations (usually /etc/resolv.conf).
+ information (usually /etc/resolv.conf).
:type filename: str
:param raiseException: If True, an exception occurs in case a
resolver object can't be created.
@@ -431,7 +431,7 @@ record."
Ask the resolver about name and return all address records.
:param name: The name to look for. String is automatically
- converrted to dname.
+ converted to dname.
:type name: :class:`ldns_dname` or str
:param aclass: The class to use.
:type aclass: ldns_rr_class
diff --git a/contrib/python/ldns_rr.i b/contrib/python/ldns_rr.i
index 726c6cd902af..2e0a07140d41 100644
--- a/contrib/python/ldns_rr.i
+++ b/contrib/python/ldns_rr.i
@@ -456,7 +456,7 @@
%{
void _ldns_rr_set_owner(ldns_rr *rr, ldns_rdf *rdf)
{
- return ldns_rr_set_owner(rr, ldns_rdf_clone(rdf));
+ ldns_rr_set_owner(rr, ldns_rdf_clone(rdf));
}
%}
@@ -562,7 +562,7 @@ to create :class:`ldns_rr` instances.
:type prev: :class:`ldns_rdf`
:param raiseException: If True, an exception occurs in case a rr
instance can't be created.
- :throws Exception: If `raiseExceprion` is set and fails.
+ :throws Exception: If `raiseException` is set and fails.
:throws TypeError: When parameters of incorrect types.
:return: (:class:`ldns_rr`) RR instance or None.
@@ -612,7 +612,7 @@ to create :class:`ldns_rr` instances.
:type prev: :class:`ldns_rdf`
:param raiseException: If True, an exception occurs in case
a rr instance can't be created.
- :throws Exception: If `raiseExceprion` is set and fails.
+ :throws Exception: If `raiseException` is set and fails.
:throws TypeError: When parameters of incorrect types.
:return: (:class:`ldns_rr`) RR instance or None. If the object
can't be created and `raiseException` is True,
@@ -657,7 +657,7 @@ to create :class:`ldns_rr` instances.
:type prev: :class:`ldns_rdf`
:param raiseException: If True, an exception occurs in case when
a rr instance can't be created.
- :throws Exception: If `raiseExceprion` is set and fails.
+ :throws Exception: If `raiseException` is set and fails.
:throws TypeError: When parameters of incorrect types.
:return: None when fails, otherwise a tuple containing:
@@ -751,7 +751,7 @@ to create :class:`ldns_rr` instances.
:type origin: :class:`ldns_dname`
:param prev: When the owner is white spaces use this.
:type prev: :class:`ldns_rdf`
- :param raiseException: Iif True, an exception occurs in case
+ :param raiseException: If True, an exception occurs in case
a resolver object can't be created.
:throws Exception: If `raiseException` is set and the input
cannot be read.
@@ -1424,9 +1424,9 @@ to create :class:`ldns_rr` instances.
def rrsig_set_expiration(self, f):
"""
- Sets the expireation date of a LDNS_RR_TYPE_RRSIG rr.
+ Sets the expiration date of a LDNS_RR_TYPE_RRSIG rr.
- :param f: The expireation date to set.
+ :param f: The expiration date to set.
:type f: :class:`ldns_rdf`
:throws TypeError: when `f` of non-:class:`ldns_rdf` type.
:return: (bool) True on success, False otherwise.
@@ -1653,7 +1653,7 @@ to create :class:`ldns_rr` instances.
Sets the type in the rr.
:param rr_type: Set to this type.
- :type rr_type: ineteger
+ :type rr_type: integer
:throws TypeError: when `rr_type` of non-integer type.
"""
_ldns.ldns_rr_set_type(self, rr_type)
@@ -1695,7 +1695,7 @@ to create :class:`ldns_rr` instances.
"""
Calculates the uncompressed size of an RR.
- :return: (inetger) size of the rr.
+ :return: (integer) size of the rr.
"""
return _ldns.ldns_rr_uncompressed_size(self)
#parameters: const ldns_rr *,
@@ -2441,7 +2441,7 @@ In order to create a class instance use :meth:`ldns_rr_descriptor`.
:param field: The field number.
:type field: positive int
- :throws TypeError: when `field` of non-inetger type.
+ :throws TypeError: when `field` of non-integer type.
:return: (int) the rdf type for the field.
"""
return _ldns.ldns_rr_descriptor_field_type(self, field)
diff --git a/contrib/python/ldns_zone.i b/contrib/python/ldns_zone.i
index 2afdd9693094..bbb8d8f21aeb 100644
--- a/contrib/python/ldns_zone.i
+++ b/contrib/python/ldns_zone.i
@@ -132,7 +132,7 @@ The ``zone.txt`` file contains the following records::
:param file: a file object
:param origin: (ldns_rdf) the zones' origin
:param ttl: default ttl to use
- :param rr_class: efault class to use (IN)
+ :param rr_class: Default class to use (IN)
:param raiseException: if True, an exception occurs in case a zone instance can't be created
:returns: zone instance or None. If an instance can't be created and raiseException is True, an exception occurs.
"""
@@ -149,7 +149,7 @@ The ``zone.txt`` file contains the following records::
:param file: a file object
:param origin: (ldns_rdf) the zones' origin
:param ttl: default ttl to use
- :param rr_class: efault class to use (IN)
+ :param rr_class: Default class to use (IN)
:param raiseException: if True, an exception occurs in case a zone instance can't be created
:returns:
* zone - zone instance or None. If an instance can't be created and raiseException is True, an exception occurs.
@@ -216,7 +216,7 @@ The ``zone.txt`` file contains the following records::
:param rr:
the rr to add
- :returns: (bool) a true on succes otherwise falsed
+ :returns: (bool) a true on success otherwise falsed
"""
return _ldns.ldns_zone_push_rr(self,rr)
#parameters: ldns_zone *,ldns_rr *,
@@ -229,7 +229,7 @@ The ``zone.txt`` file contains the following records::
:param list:
the list to add
- :returns: (bool) a true on succes otherwise falsed
+ :returns: (bool) a true on success otherwise falsed
"""
return _ldns.ldns_zone_push_rr_list(self,list)
#parameters: ldns_zone *,ldns_rr_list *,
diff --git a/dane.c b/dane.c
index 30dc1f700519..b8487b53a825 100644
--- a/dane.c
+++ b/dane.c
@@ -1,7 +1,7 @@
/*
* Verify or create TLS authentication with DANE (RFC6698)
*
- * (c) NLnetLabs 2012
+ * (c) NLnetLabs 2012-2020
*
* See the file LICENSE for the license.
*
@@ -29,6 +29,63 @@
#include <openssl/x509v3.h>
#endif
+/* OpenSSL context options. At the moment, disable SSLv2, SSLv3
+ * and Compression, if available. TLSv1.0 is allowed at the moment.
+ * TLSv1.1 is the first to provide elliptic curves, so it is usually
+ * allowed in a TLS stack. TLSv1.2 is the first to provide authentication
+ * modes of operation, like GCM. The defines below are a moving
+ * target based on OpenSSL library version. Grep is useful to find
+ * the defines: grep -IR SSL_OP_NO_ /usr/include/openssl.
+ */
+#ifdef HAVE_SSL
+# ifdef SSL_OP_NO_SSLv2
+ const long NoOpenSSLv2 = SSL_OP_NO_SSLv2;
+# else
+ const long NoOpenSSLv2 = 0L;
+# endif
+# ifdef SSL_OP_NO_SSLv3
+ const long NoOpenSSLv3 = SSL_OP_NO_SSLv3;
+# else
+ const long NoOpenSSLv3 = 0L;
+# endif
+# ifdef SSL_OP_NO_TLSv1
+ const long NoOpenTLSv1 = SSL_OP_NO_TLSv1;
+# else
+ const long NoOpenTLSv1 = 0L;
+# endif
+# ifdef SSL_OP_NO_DTLSv1
+ const long NoOpenDTLSv1 = SSL_OP_NO_DTLSv1;
+# else
+ const long NoOpenDTLSv1 = 0L;
+# endif
+# ifdef SSL_OP_NO_COMPRESSION
+ const long NoOpenSSLCompression = SSL_OP_NO_COMPRESSION;
+# else
+ const long NoOpenSSLCompression = 0L;
+# endif
+#endif
+
+#if defined(USE_DANE_VERIFY) && defined(USE_DANE_TA_USAGE)
+static SSL_CTX*
+ldns_dane_new_ssl_context(void)
+{
+ SSL_CTX* ssl_ctx;
+
+ ssl_ctx = SSL_CTX_new(TLS_client_method());
+ if (ssl_ctx != NULL)
+ {
+ /* ldns allows TLS and DTLS v1.0 at the moment. Some may disagree.
+ * Sometime in the future they may be disabled, too. Maybe
+ * --disable-tlsv1 and --disable-dtlsv1 should be configure options.
+ */
+ long flags = NoOpenSSLv2 | NoOpenSSLv3 | NoOpenSSLCompression;
+ SSL_CTX_set_options(ssl_ctx, flags);
+ }
+
+ return ssl_ctx;
+}
+#endif
+
ldns_status
ldns_dane_create_tlsa_owner(ldns_rdf** tlsa_owner, const ldns_rdf* name,
uint16_t port, ldns_dane_transport transport)
@@ -193,7 +250,7 @@ ldns_dane_pkix_validate(X509* cert, STACK_OF(X509)* extra_certs,
}
-/* Orinary PKIX validation of cert (with extra_certs to help)
+/* Ordinary PKIX validation of cert (with extra_certs to help)
* against the CA's in store, but also return the validation chain.
*/
static ldns_status
@@ -641,7 +698,7 @@ ldns_dane_verify_rr(const ldns_rr* tlsa_rr,
* verification. We use these undocumented means with the ldns
* dane function prototypes which did only offline dane verification.
*/
- if (!(ssl_ctx = SSL_CTX_new(TLS_client_method())))
+ if (!(ssl_ctx = ldns_dane_new_ssl_context()))
s = LDNS_STATUS_MEM_ERR;
else if (SSL_CTX_dane_enable(ssl_ctx) <= 0)
@@ -841,7 +898,7 @@ ldns_dane_verify(const ldns_rr_list* tlsas,
* verification. We use these undocumented means with the ldns
* dane function prototypes which did only offline dane verification.
*/
- if (!(ssl_ctx = SSL_CTX_new(TLS_client_method())))
+ if (!(ssl_ctx = ldns_dane_new_ssl_context()))
s = LDNS_STATUS_MEM_ERR;
else if (SSL_CTX_dane_enable(ssl_ctx) <= 0)
diff --git a/dname.c b/dname.c
index 17afe1d333d0..4f311ee29856 100644
--- a/dname.c
+++ b/dname.c
@@ -3,7 +3,7 @@
*
* dname specific rdata implementations
* A dname is a rdf structure with type LDNS_RDF_TYPE_DNAME
- * It is not a /real/ type! All function must therefor check
+ * It is not a /real/ type! All function must therefore check
* for LDNS_RDF_TYPE_DNAME.
*
* a Net::DNS like library for C
diff --git a/dnssec.c b/dnssec.c
index e3c99de27693..fbaa518a8cb0 100644
--- a/dnssec.c
+++ b/dnssec.c
@@ -23,6 +23,11 @@
#include <openssl/rand.h>
#include <openssl/err.h>
#include <openssl/md5.h>
+#include <openssl/bn.h>
+#include <openssl/rsa.h>
+#ifdef USE_DSA
+#include <openssl/dsa.h>
+#endif
#endif
ldns_rr *
@@ -149,6 +154,7 @@ ldns_dnssec_nsec3_closest_encloser(const ldns_rdf *qname,
LDNS_FREE(salt);
ldns_rdf_deep_free(zone_name);
ldns_rdf_deep_free(sname);
+ ldns_rdf_deep_free(hashed_sname);
return NULL;
}
@@ -326,6 +332,7 @@ uint16_t ldns_calc_keytag_raw(const uint8_t* key, size_t keysize)
}
#ifdef HAVE_SSL
+#ifdef USE_DSA
DSA *
ldns_key_buf2dsa(const ldns_buffer *key)
{
@@ -365,7 +372,6 @@ ldns_key_buf2dsa_raw(const unsigned char* key, size_t len)
offset += length;
Y = BN_bin2bn(key+offset, (int)length, NULL);
- offset += length;
/* create the key and set its properties */
if(!Q || !P || !G || !Y || !(dsa = DSA_new())) {
@@ -375,7 +381,7 @@ ldns_key_buf2dsa_raw(const unsigned char* key, size_t len)
BN_free(Y);
return NULL;
}
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
#ifndef S_SPLINT_S
dsa->p = P;
dsa->q = Q;
@@ -402,6 +408,7 @@ ldns_key_buf2dsa_raw(const unsigned char* key, size_t len)
#endif /* OPENSSL_VERSION_NUMBER */
return dsa;
}
+#endif /* USE_DSA */
RSA *
ldns_key_buf2rsa(const ldns_buffer *key)
@@ -427,7 +434,7 @@ ldns_key_buf2rsa_raw(const unsigned char* key, size_t len)
return NULL;
/* need some smart comment here XXX*/
/* the exponent is too large so it's places
- * futher...???? */
+ * further...???? */
memmove(&int16, key+1, 2);
exp = ntohs(int16);
offset = 3;
@@ -461,7 +468,7 @@ ldns_key_buf2rsa_raw(const unsigned char* key, size_t len)
BN_free(modulus);
return NULL;
}
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
#ifndef S_SPLINT_S
rsa->n = modulus;
rsa->e = exponent;
@@ -905,7 +912,7 @@ ldns_dnssec_create_nsec3(const ldns_dnssec_name *from,
cur_rrsets = from->rrsets;
while (cur_rrsets) {
/* Do not include non-authoritative rrsets on the delegation point
- * in the type bitmap. Potentionally not skipping insecure
+ * in the type bitmap. Potentially not skipping insecure
* delegation should have been done earlier, in function
* ldns_dnssec_zone_create_nsec3s, or even earlier in:
* ldns_dnssec_zone_sign_nsec3_flg .
@@ -1327,6 +1334,8 @@ ldns_nsec3_salt_data(const ldns_rr *nsec3_rr)
ldns_rdf *salt_rdf = ldns_nsec3_salt(nsec3_rr);
if (salt_rdf && ldns_rdf_size(salt_rdf) > 0) {
salt_length = ldns_rdf_data(salt_rdf)[0];
+ if((size_t)salt_length+1 > ldns_rdf_size(salt_rdf))
+ return NULL;
salt = LDNS_XMALLOC(uint8_t, salt_length);
if(!salt) return NULL;
memcpy(salt, &ldns_rdf_data(salt_rdf)[1], salt_length);
@@ -1556,6 +1565,7 @@ ldns_pkt_verify_time(const ldns_pkt *p, ldns_rr_type t, const ldns_rdf *o,
ldns_rr_list *sigs_covered;
ldns_rdf *rdf_t;
ldns_rr_type t_netorder;
+ ldns_status status;
if (!k) {
return LDNS_STATUS_ERR;
@@ -1607,7 +1617,9 @@ ldns_pkt_verify_time(const ldns_pkt *p, ldns_rr_type t, const ldns_rdf *o,
}
return LDNS_STATUS_ERR;
}
- return ldns_verify_time(rrset, sigs, k, check_time, good_keys);
+ status = ldns_verify_time(rrset, sigs, k, check_time, good_keys);
+ ldns_rr_list_deep_free(rrset);
+ return status;
}
ldns_status
@@ -1896,7 +1908,7 @@ ldns_convert_ecdsa_rrsig_rdf2asn1(ldns_buffer *target_buffer,
const ldns_rdf *sig_rdf)
{
/* convert from two BIGNUMs in the rdata buffer, to ASN notation.
- * ASN preable: 30440220 <R 32bytefor256> 0220 <S 32bytefor256>
+ * ASN preamble: 30440220 <R 32bytefor256> 0220 <S 32bytefor256>
* the '20' is the length of that field (=bnsize).
* the '44' is the total remaining length.
* if negative, start with leading zero.
@@ -1942,69 +1954,4 @@ ldns_convert_ecdsa_rrsig_rdf2asn1(ldns_buffer *target_buffer,
#endif /* S_SPLINT_S */
#endif /* USE_ECDSA */
-
-#if defined(USE_ED25519) || defined(USE_ED448)
-/* debug printout routine */
-static void print_hex(const char* str, uint8_t* d, int len)
-{
- const char hex[] = "0123456789abcdef";
- int i;
- printf("%s [len=%d]: ", str, len);
- for(i=0; i<len; i++) {
- int x = (d[i]&0xf0)>>4;
- int y = (d[i]&0x0f);
- printf("%c%c", hex[x], hex[y]);
- }
- printf("\n");
-}
-#endif
-
-#ifdef USE_ED25519
-ldns_rdf *
-ldns_convert_ed25519_rrsig_asn12rdf(const ldns_buffer *sig, long sig_len)
-{
- unsigned char *data = (unsigned char*)ldns_buffer_begin(sig);
- ldns_rdf* rdf = NULL;
-
- /* TODO when Openssl supports signing and you can test this */
- print_hex("sig in ASN", data, sig_len);
-
- return rdf;
-}
-
-ldns_status
-ldns_convert_ed25519_rrsig_rdf2asn1(ldns_buffer *target_buffer,
- const ldns_rdf *sig_rdf)
-{
- /* TODO when Openssl supports signing and you can test this. */
- /* convert sig_buf into ASN1 into the target_buffer */
- print_hex("sig raw", ldns_rdf_data(sig_rdf), ldns_rdf_size(sig_rdf));
- return ldns_buffer_status(target_buffer);
-}
-#endif /* USE_ED25519 */
-
-#ifdef USE_ED448
-ldns_rdf *
-ldns_convert_ed448_rrsig_asn12rdf(const ldns_buffer *sig, long sig_len)
-{
- unsigned char *data = (unsigned char*)ldns_buffer_begin(sig);
- ldns_rdf* rdf = NULL;
-
- /* TODO when Openssl supports signing and you can test this */
- print_hex("sig in ASN", data, sig_len);
-
- return rdf;
-}
-
-ldns_status
-ldns_convert_ed448_rrsig_rdf2asn1(ldns_buffer *target_buffer,
- const ldns_rdf *sig_rdf)
-{
- /* TODO when Openssl supports signing and you can test this. */
- /* convert sig_buf into ASN1 into the target_buffer */
- print_hex("sig raw", ldns_rdf_data(sig_rdf), ldns_rdf_size(sig_rdf));
- return ldns_buffer_status(target_buffer);
-}
-#endif /* USE_ED448 */
-
#endif /* HAVE_SSL */
diff --git a/dnssec_sign.c b/dnssec_sign.c
index 22f09816dafe..41d845f3fa8f 100644
--- a/dnssec_sign.c
+++ b/dnssec_sign.c
@@ -17,8 +17,16 @@
#include <openssl/rand.h>
#include <openssl/err.h>
#include <openssl/md5.h>
+#include <openssl/bn.h>
+#include <openssl/rsa.h>
+#ifdef USE_DSA
+#include <openssl/dsa.h>
+#endif
#endif /* HAVE_SSL */
+#define LDNS_SIGN_WITH_ZONEMD ( LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA384 \
+ | LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA512 )
+
ldns_rr *
ldns_create_empty_rrsig(const ldns_rr_list *rrset,
const ldns_key *current_key)
@@ -184,7 +192,7 @@ ldns_sign_public_buffer(ldns_buffer *sign_buf, ldns_key *current_key)
b64rdf = ldns_sign_public_evp(
sign_buf,
ldns_key_evp_key(current_key),
- EVP_sha512());
+ NULL);
break;
#endif
#ifdef USE_ED448
@@ -192,7 +200,7 @@ ldns_sign_public_buffer(ldns_buffer *sign_buf, ldns_key *current_key)
b64rdf = ldns_sign_public_evp(
sign_buf,
ldns_key_evp_key(current_key),
- EVP_sha512());
+ NULL);
break;
#endif
case LDNS_SIGN_RSAMD5:
@@ -234,8 +242,6 @@ ldns_sign_public(ldns_rr_list *rrset, ldns_key_list *keys)
new_owner = NULL;
- signatures = ldns_rr_list_new();
-
/* prepare a signature and add all the know data
* prepare the rrset. Sign this together. */
rrset_clone = ldns_rr_list_clone(rrset);
@@ -252,6 +258,8 @@ ldns_sign_public(ldns_rr_list *rrset, ldns_key_list *keys)
/* sort */
ldns_rr_list_sort(rrset_clone);
+ signatures = ldns_rr_list_new();
+
for (key_count = 0;
key_count < ldns_key_list_key_count(keys);
key_count++) {
@@ -320,14 +328,6 @@ ldns_sign_public(ldns_rr_list *rrset, ldns_key_list *keys)
return signatures;
}
-/**
- * Sign data with DSA
- *
- * \param[in] to_sign The ldns_buffer containing raw data that is
- * to be signed
- * \param[in] key The DSA key structure to sign with
- * \return ldns_rdf for the RRSIG ldns_rr
- */
ldns_rdf *
ldns_sign_public_dsa(ldns_buffer *to_sign, DSA *key)
{
@@ -408,11 +408,14 @@ ldns_pkey_is_ecdsa(EVP_PKEY* pkey)
{
EC_KEY* ec;
const EC_GROUP* g;
-#ifdef HAVE_EVP_PKEY_BASE_ID
+#ifdef HAVE_EVP_PKEY_GET_BASE_ID
+ if(EVP_PKEY_get_base_id(pkey) != EVP_PKEY_EC)
+ return 0;
+#elif defined(HAVE_EVP_PKEY_BASE_ID)
if(EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
return 0;
#else
- if(EVP_PKEY_type(key->type) != EVP_PKEY_EC)
+ if(EVP_PKEY_type(pkey->type) != EVP_PKEY_EC)
return 0;
#endif
ec = EVP_PKEY_get1_EC_KEY(pkey);
@@ -456,8 +459,19 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
/* initializes a signing context */
md_type = digest_type;
+#ifdef USE_ED25519
+ if(EVP_PKEY_id(key) == NID_ED25519) {
+ /* digest must be NULL for ED25519 sign and verify */
+ md_type = NULL;
+ } else
+#endif
+#ifdef USE_ED448
+ if(EVP_PKEY_id(key) == NID_ED448) {
+ md_type = NULL;
+ } else
+#endif
if(!md_type) {
- /* unknown message difest */
+ /* unknown message digest */
ldns_buffer_free(b64sig);
return NULL;
}
@@ -473,23 +487,34 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
return NULL;
}
- r = EVP_SignInit(ctx, md_type);
- if(r == 1) {
- r = EVP_SignUpdate(ctx, (unsigned char*)
- ldns_buffer_begin(to_sign),
- ldns_buffer_position(to_sign));
- } else {
- ldns_buffer_free(b64sig);
- EVP_MD_CTX_destroy(ctx);
- return NULL;
- }
- if(r == 1) {
- r = EVP_SignFinal(ctx, (unsigned char*)
- ldns_buffer_begin(b64sig), &siglen, key);
+#if defined(USE_ED25519) || defined(USE_ED448)
+ if(md_type == NULL) {
+ /* for these methods we must use the one-shot DigestSign */
+ r = EVP_DigestSignInit(ctx, NULL, md_type, NULL, key);
+ if(r == 1) {
+ size_t siglen_sizet = ldns_buffer_capacity(b64sig);
+ r = EVP_DigestSign(ctx,
+ (unsigned char*)ldns_buffer_begin(b64sig),
+ &siglen_sizet,
+ (unsigned char*)ldns_buffer_begin(to_sign),
+ ldns_buffer_position(to_sign));
+ siglen = (unsigned int)siglen_sizet;
+ }
} else {
- ldns_buffer_free(b64sig);
- EVP_MD_CTX_destroy(ctx);
- return NULL;
+#else
+ r = 0;
+ if(md_type != NULL) {
+#endif
+ r = EVP_SignInit(ctx, md_type);
+ if(r == 1) {
+ r = EVP_SignUpdate(ctx, (unsigned char*)
+ ldns_buffer_begin(to_sign),
+ ldns_buffer_position(to_sign));
+ }
+ if(r == 1) {
+ r = EVP_SignFinal(ctx, (unsigned char*)
+ ldns_buffer_begin(b64sig), &siglen, key);
+ }
}
if(r != 1) {
ldns_buffer_free(b64sig);
@@ -502,7 +527,9 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
#ifdef USE_DSA
#ifndef S_SPLINT_S
/* unfortunately, OpenSSL output is different from DNS DSA format */
-# ifdef HAVE_EVP_PKEY_BASE_ID
+# ifdef HAVE_EVP_PKEY_GET_BASE_ID
+ if (EVP_PKEY_get_base_id(key) == EVP_PKEY_DSA) {
+# elif defined(HAVE_EVP_PKEY_BASE_ID)
if (EVP_PKEY_base_id(key) == EVP_PKEY_DSA) {
# else
if (EVP_PKEY_type(key->type) == EVP_PKEY_DSA) {
@@ -512,9 +539,11 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
}
#endif
#endif
-#if defined(USE_ECDSA) || defined(USE_ED25519) || defined(USE_ED448)
+#if defined(USE_ECDSA)
if(
-# ifdef HAVE_EVP_PKEY_BASE_ID
+# ifdef HAVE_EVP_PKEY_GET_BASE_ID
+ EVP_PKEY_get_base_id(key)
+# elif defined(HAVE_EVP_PKEY_BASE_ID)
EVP_PKEY_base_id(key)
# else
EVP_PKEY_type(key->type)
@@ -527,20 +556,6 @@ ldns_sign_public_evp(ldns_buffer *to_sign,
b64sig, (long)siglen, ldns_pkey_is_ecdsa(key));
}
# endif /* USE_ECDSA */
-# ifdef USE_ED25519
- if(EVP_PKEY_id(key) == NID_X25519) {
- r = 1;
- sigdata_rdf = ldns_convert_ed25519_rrsig_asn12rdf(
- b64sig, siglen);
- }
-# endif /* USE_ED25519 */
-# ifdef USE_ED448
- if(EVP_PKEY_id(key) == NID_X448) {
- r = 1;
- sigdata_rdf = ldns_convert_ed448_rrsig_asn12rdf(
- b64sig, siglen);
- }
-# endif /* USE_ED448 */
}
#endif /* PKEY_EC */
if(r == 0) {
@@ -642,7 +657,7 @@ ldns_dnssec_addresses_on_glue_list(
/* ldns_rr_list_push_rr()
* returns false when unable
* to increase the capacity
- * of the ldsn_rr_list
+ * of the ldns_rr_list
*/
}
}
@@ -653,20 +668,6 @@ ldns_dnssec_addresses_on_glue_list(
return LDNS_STATUS_OK;
}
-/**
- * Marks the names in the zone that are occluded. Those names will be skipped
- * when walking the tree with the ldns_dnssec_name_node_next_nonglue()
- * function. But watch out! Names that are partially occluded (like glue with
- * the same name as the delegation) will not be marked and should specifically
- * be taken into account separately.
- *
- * When glue_list is given (not NULL), in the process of marking the names, all
- * glue resource records will be pushed to that list, even glue at delegation names.
- *
- * \param[in] zone the zone in which to mark the names
- * \param[in] glue_list the list to which to push the glue rrs
- * \return LDNS_STATUS_OK on success, an error code otherwise
- */
ldns_status
ldns_dnssec_zone_mark_and_get_glue(ldns_dnssec_zone *zone,
ldns_rr_list *glue_list)
@@ -678,7 +679,7 @@ ldns_dnssec_zone_mark_and_get_glue(ldns_dnssec_zone *zone,
/* When the cut is caused by a delegation, below_delegation will be 1.
* When caused by a DNAME, below_delegation will be 0.
*/
- int below_delegation = -1; /* init suppresses comiler warning */
+ int below_delegation = -1; /* init suppresses compiler warning */
ldns_status s;
if (!zone || !zone->names) {
@@ -700,7 +701,7 @@ ldns_dnssec_zone_mark_and_get_glue(ldns_dnssec_zone *zone,
* FIXME! If there are labels in between the SOA and
* the cut, going from the authoritative space (below
* the SOA) up into occluded space again, will not be
- * detected with the contruct below!
+ * detected with the construct below!
*/
if (ldns_dname_is_subdomain(owner, cut) &&
!ldns_dnssec_rrsets_contains_type(
@@ -746,16 +747,6 @@ ldns_dnssec_zone_mark_and_get_glue(ldns_dnssec_zone *zone,
return LDNS_STATUS_OK;
}
-/**
- * Marks the names in the zone that are occluded. Those names will be skipped
- * when walking the tree with the ldns_dnssec_name_node_next_nonglue()
- * function. But watch out! Names that are partially occluded (like glue with
- * the same name as the delegation) will not be marked and should specifically
- * be taken into account separately.
- *
- * \param[in] zone the zone in which to mark the names
- * \return LDNS_STATUS_OK on success, an error code otherwise
- */
ldns_status
ldns_dnssec_zone_mark_glue(ldns_dnssec_zone *zone)
{
@@ -799,17 +790,24 @@ ldns_dnssec_zone_create_nsecs(ldns_dnssec_zone *zone,
uint32_t nsec_ttl;
ldns_dnssec_rrsets *soa;
- /* the TTL of NSEC rrs should be set to the minimum TTL of
- * the zone SOA (RFC4035 Section 2.3)
+ /* The TTL value for any NSEC RR SHOULD be the same TTL value as the
+ * lesser of the MINIMUM field of the SOA record and the TTL of the SOA
+ * itself. This matches the definition of the TTL for negative
+ * responses in [RFC2308]. (draft-ietf-dnsop-nsec-ttl-01 update of
+ * RFC4035 Section 2.3)
*/
soa = ldns_dnssec_name_find_rrset(zone->soa, LDNS_RR_TYPE_SOA);
/* did the caller actually set it? if not,
* fall back to default ttl
*/
- if (soa && soa->rrs && soa->rrs->rr
- && (ldns_rr_rdf(soa->rrs->rr, 6) != NULL)) {
- nsec_ttl = ldns_rdf2native_int32(ldns_rr_rdf(soa->rrs->rr, 6));
+ if (soa && soa->rrs && soa->rrs->rr) {
+ ldns_rr *soa_rr = soa->rrs->rr;
+ ldns_rdf *min_rdf = ldns_rr_rdf(soa_rr, 6);
+
+ nsec_ttl = min_rdf == NULL
+ || ldns_rr_ttl(soa_rr) < ldns_rdf2native_int32(min_rdf)
+ ? ldns_rr_ttl(soa_rr) : ldns_rdf2native_int32(min_rdf);
} else {
nsec_ttl = LDNS_DEFAULT_TTL;
}
@@ -893,17 +891,24 @@ ldns_dnssec_zone_create_nsec3s_mkmap(ldns_dnssec_zone *zone,
return LDNS_STATUS_ERR;
}
- /* the TTL of NSEC rrs should be set to the minimum TTL of
- * the zone SOA (RFC4035 Section 2.3)
+ /* The TTL value for any NSEC RR SHOULD be the same TTL value as the
+ * lesser of the MINIMUM field of the SOA record and the TTL of the SOA
+ * itself. This matches the definition of the TTL for negative
+ * responses in [RFC2308]. (draft-ietf-dnsop-nsec-ttl-01 update of
+ * RFC4035 Section 2.3)
*/
soa = ldns_dnssec_name_find_rrset(zone->soa, LDNS_RR_TYPE_SOA);
/* did the caller actually set it? if not,
* fall back to default ttl
*/
- if (soa && soa->rrs && soa->rrs->rr
- && ldns_rr_rdf(soa->rrs->rr, 6) != NULL) {
- nsec_ttl = ldns_rdf2native_int32(ldns_rr_rdf(soa->rrs->rr, 6));
+ if (soa && soa->rrs && soa->rrs->rr) {
+ ldns_rr *soa_rr = soa->rrs->rr;
+ ldns_rdf *min_rdf = ldns_rr_rdf(soa_rr, 6);
+
+ nsec_ttl = min_rdf == NULL
+ || ldns_rr_ttl(soa_rr) < ldns_rdf2native_int32(min_rdf)
+ ? ldns_rr_ttl(soa_rr) : ldns_rdf2native_int32(min_rdf);
} else {
nsec_ttl = LDNS_DEFAULT_TTL;
}
@@ -984,7 +989,6 @@ ldns_dnssec_zone_create_nsec3s_mkmap(ldns_dnssec_zone *zone,
; hashmap_node != LDNS_RBTREE_NULL
; hashmap_node = ldns_rbtree_next(hashmap_node)
) {
- current_name = (ldns_dnssec_name *) hashmap_node->data;
nsec_rr = ((ldns_dnssec_name *) hashmap_node->data)->nsec;
if (nsec_rr) {
ldns_rr_list_push_rr(nsec3_list, nsec_rr);
@@ -1129,17 +1133,22 @@ ldns_key_list_filter_for_dnskey(ldns_key_list *key_list, int flags)
if (!ldns_key_list_key_count(key_list))
return;
+ /* Mark all KSKs */
for (i = 0; i < ldns_key_list_key_count(key_list); i++) {
key = ldns_key_list_key(key_list, i);
- if ((ldns_key_flags(key) & LDNS_KEY_SEP_KEY) && !saw_ksk)
- saw_ksk = ldns_key_algorithm(key);
- algos[ldns_key_algorithm(key)] = true;
+ if ((ldns_key_flags(key) & LDNS_KEY_SEP_KEY)) {
+ if (!saw_ksk)
+ saw_ksk = ldns_key_algorithm(key);
+ algos[ldns_key_algorithm(key)] = true;
+ }
}
if (!saw_ksk)
- return;
- else
- algos[saw_ksk] = 0;
+ return; /* No KSKs means sign using all ZSKs */
+ /* Deselect the ZSKs so they do not sign DNSKEY RRs.
+ * Except with the LDNS_SIGN_WITH_ALL_ALGORITHMS flag, then use it,
+ * but only if it has an algorithm for which there is no KSK
+ */
for (i =0; i < ldns_key_list_key_count(key_list); i++) {
key = ldns_key_list_key(key_list, i);
if (!(ldns_key_flags(key) & LDNS_KEY_SEP_KEY)) {
@@ -1147,15 +1156,15 @@ ldns_key_list_filter_for_dnskey(ldns_key_list *key_list, int flags)
* Still use it if it has a unique algorithm though!
*/
if ((flags & LDNS_SIGN_WITH_ALL_ALGORITHMS) &&
- algos[ldns_key_algorithm(key)])
- algos[ldns_key_algorithm(key)] = false;
+ !algos[ldns_key_algorithm(key)])
+ algos[ldns_key_algorithm(key)] = true;
else
ldns_key_set_use(key, 0);
}
}
}
-/** If there are no ZSKs use KSK as ZSK */
+/** If there are no ZSKs use KSKs as ZSK too */
static void
ldns_key_list_filter_for_non_dnskey(ldns_key_list *key_list, int flags)
{
@@ -1171,17 +1180,22 @@ ldns_key_list_filter_for_non_dnskey(ldns_key_list *key_list, int flags)
if (!ldns_key_list_key_count(key_list))
return;
+ /* Mark all ZSKs */
for (i = 0; i < ldns_key_list_key_count(key_list); i++) {
key = ldns_key_list_key(key_list, i);
- if (!(ldns_key_flags(key) & LDNS_KEY_SEP_KEY) && !saw_zsk)
- saw_zsk = ldns_key_algorithm(key);
- algos[ldns_key_algorithm(key)] = true;
+ if (!(ldns_key_flags(key) & LDNS_KEY_SEP_KEY)) {
+ if (!saw_zsk)
+ saw_zsk = ldns_key_algorithm(key);
+ algos[ldns_key_algorithm(key)] = true;
+ }
}
if (!saw_zsk)
- return;
- else
- algos[saw_zsk] = 0;
+ return; /* No ZSKs means sign using all KSKs */
+ /* Deselect the KSKs so they do not sign non DNSKEY RRs.
+ * Except with the LDNS_SIGN_WITH_ALL_ALGORITHMS flag, then use it,
+ * but only if it has an algorithm for which there is no ZSK
+ */
for (i = 0; i < ldns_key_list_key_count(key_list); i++) {
key = ldns_key_list_key(key_list, i);
if((ldns_key_flags(key) & LDNS_KEY_SEP_KEY)) {
@@ -1189,8 +1203,8 @@ ldns_key_list_filter_for_non_dnskey(ldns_key_list *key_list, int flags)
* Still use it if it has a unique algorithm though!
*/
if ((flags & LDNS_SIGN_WITH_ALL_ALGORITHMS) &&
- algos[ldns_key_algorithm(key)])
- algos[ldns_key_algorithm(key)] = false;
+ !algos[ldns_key_algorithm(key)])
+ algos[ldns_key_algorithm(key)] = true;
else
ldns_key_set_use(key, 0);
}
@@ -1251,12 +1265,15 @@ ldns_dnssec_zone_create_rrsigs_flg( ldns_dnssec_zone *zone
key_list,
func,
arg);
- if(!(flags&LDNS_SIGN_DNSKEY_WITH_ZSK) &&
- cur_rrset->type == LDNS_RR_TYPE_DNSKEY)
- ldns_key_list_filter_for_dnskey(key_list, flags);
-
- if(cur_rrset->type != LDNS_RR_TYPE_DNSKEY)
+ if(cur_rrset->type == LDNS_RR_TYPE_DNSKEY ||
+ cur_rrset->type == LDNS_RR_TYPE_CDNSKEY ||
+ cur_rrset->type == LDNS_RR_TYPE_CDS) {
+ if(!(flags&LDNS_SIGN_DNSKEY_WITH_ZSK)) {
+ ldns_key_list_filter_for_dnskey(key_list, flags);
+ }
+ } else {
ldns_key_list_filter_for_non_dnskey(key_list, flags);
+ }
/* TODO: just set count to zero? */
rr_list = ldns_rr_list_new();
@@ -1350,6 +1367,8 @@ ldns_dnssec_zone_sign(ldns_dnssec_zone *zone,
return ldns_dnssec_zone_sign_flg(zone, new_rrs, key_list, func, arg, 0);
}
+ldns_status dnssec_zone_equip_zonemd(ldns_dnssec_zone *zone,
+ ldns_rr_list *new_rrs, ldns_key_list *key_list, int flags);
ldns_status
ldns_dnssec_zone_sign_flg(ldns_dnssec_zone *zone,
ldns_rr_list *new_rrs,
@@ -1359,25 +1378,46 @@ ldns_dnssec_zone_sign_flg(ldns_dnssec_zone *zone,
int flags)
{
ldns_status result = LDNS_STATUS_OK;
+ ldns_dnssec_rrsets zonemd_rrset;
+ bool zonemd_added = false;
if (!zone || !new_rrs || !key_list) {
return LDNS_STATUS_ERR;
}
-
+ if (flags & LDNS_SIGN_WITH_ZONEMD) {
+ ldns_dnssec_rrsets **rrsets_ref = &zone->soa->rrsets;
+
+ while (*rrsets_ref
+ && (*rrsets_ref)->type < LDNS_RR_TYPE_ZONEMD)
+ rrsets_ref = &(*rrsets_ref)->next;
+ if (!*rrsets_ref
+ || (*rrsets_ref)->type > LDNS_RR_TYPE_ZONEMD) {
+ zonemd_rrset.rrs = NULL;
+ zonemd_rrset.type = LDNS_RR_TYPE_ZONEMD;
+ zonemd_rrset.signatures = NULL;
+ zonemd_rrset.next = *rrsets_ref;
+ *rrsets_ref = &zonemd_rrset;
+ zonemd_added = true;
+ }
+ }
/* zone is already sorted */
result = ldns_dnssec_zone_mark_glue(zone);
if (result != LDNS_STATUS_OK) {
return result;
}
-
/* check whether we need to add nsecs */
- if (zone->names && !((ldns_dnssec_name *)zone->names->root->data)->nsec) {
+ if ((flags & LDNS_SIGN_NO_KEYS_NO_NSECS)
+ && ldns_key_list_key_count(key_list) < 1)
+ ; /* pass */
+
+ else if (zone->names
+ && !((ldns_dnssec_name *)zone->names->root->data)->nsec) {
+
result = ldns_dnssec_zone_create_nsecs(zone, new_rrs);
if (result != LDNS_STATUS_OK) {
return result;
}
}
-
result = ldns_dnssec_zone_create_rrsigs_flg(zone,
new_rrs,
key_list,
@@ -1385,7 +1425,18 @@ ldns_dnssec_zone_sign_flg(ldns_dnssec_zone *zone,
arg,
flags);
- return result;
+ if (zonemd_added) {
+ ldns_dnssec_rrsets **rrsets_ref
+ = &zone->soa->rrsets;
+
+ while (*rrsets_ref
+ && (*rrsets_ref)->type < LDNS_RR_TYPE_ZONEMD)
+ rrsets_ref = &(*rrsets_ref)->next;
+ *rrsets_ref = zonemd_rrset.next;
+ }
+ return flags & LDNS_SIGN_WITH_ZONEMD
+ ? dnssec_zone_equip_zonemd(zone, new_rrs, key_list, flags)
+ : result;
}
ldns_status
@@ -1421,6 +1472,8 @@ ldns_dnssec_zone_sign_nsec3_flg_mkmap(ldns_dnssec_zone *zone,
{
ldns_rr *nsec3, *nsec3param;
ldns_status result = LDNS_STATUS_OK;
+ bool zonemd_added = false;
+ ldns_dnssec_rrsets zonemd_rrset;
/* zone is already sorted */
result = ldns_dnssec_zone_mark_glue(zone);
@@ -1439,7 +1492,13 @@ ldns_dnssec_zone_sign_nsec3_flg_mkmap(ldns_dnssec_zone *zone,
}
nsec3 = ((ldns_dnssec_name *)zone->names->root->data)->nsec;
- if (nsec3 && ldns_rr_get_type(nsec3) == LDNS_RR_TYPE_NSEC3) {
+
+ /* check whether we need to add nsecs */
+ if ((signflags & LDNS_SIGN_NO_KEYS_NO_NSECS)
+ && ldns_key_list_key_count(key_list) < 1)
+ ; /* pass */
+
+ else if (nsec3 && ldns_rr_get_type(nsec3) == LDNS_RR_TYPE_NSEC3) {
/* no need to recreate */
} else {
if (!ldns_dnssec_zone_find_rrset(zone,
@@ -1466,6 +1525,23 @@ ldns_dnssec_zone_sign_nsec3_flg_mkmap(ldns_dnssec_zone *zone,
}
ldns_rr_list_push_rr(new_rrs, nsec3param);
}
+ if (signflags & LDNS_SIGN_WITH_ZONEMD) {
+ ldns_dnssec_rrsets **rrsets_ref
+ = &zone->soa->rrsets;
+
+ while (*rrsets_ref
+ && (*rrsets_ref)->type < LDNS_RR_TYPE_ZONEMD)
+ rrsets_ref = &(*rrsets_ref)->next;
+ if (!*rrsets_ref
+ || (*rrsets_ref)->type > LDNS_RR_TYPE_ZONEMD) {
+ zonemd_rrset.rrs = NULL;
+ zonemd_rrset.type = LDNS_RR_TYPE_ZONEMD;
+ zonemd_rrset.signatures = NULL;
+ zonemd_rrset.next = *rrsets_ref;
+ *rrsets_ref = &zonemd_rrset;
+ zonemd_added = true;
+ }
+ }
result = ldns_dnssec_zone_create_nsec3s_mkmap(zone,
new_rrs,
algorithm,
@@ -1474,6 +1550,15 @@ ldns_dnssec_zone_sign_nsec3_flg_mkmap(ldns_dnssec_zone *zone,
salt_length,
salt,
map);
+ if (zonemd_added) {
+ ldns_dnssec_rrsets **rrsets_ref
+ = &zone->soa->rrsets;
+
+ while (*rrsets_ref
+ && (*rrsets_ref)->type < LDNS_RR_TYPE_ZONEMD)
+ rrsets_ref = &(*rrsets_ref)->next;
+ *rrsets_ref = zonemd_rrset.next;
+ }
if (result != LDNS_STATUS_OK) {
return result;
}
@@ -1486,8 +1571,12 @@ ldns_dnssec_zone_sign_nsec3_flg_mkmap(ldns_dnssec_zone *zone,
arg,
signflags);
}
+ if (result || !zone->names)
+ return result;
- return result;
+ return signflags & LDNS_SIGN_WITH_ZONEMD
+ ? dnssec_zone_equip_zonemd(zone, new_rrs, key_list, signflags)
+ : result;
}
ldns_status
diff --git a/dnssec_verify.c b/dnssec_verify.c
index c554e4f4cb19..d76f32eba71a 100644
--- a/dnssec_verify.c
+++ b/dnssec_verify.c
@@ -21,7 +21,7 @@ ldns_dnssec_data_chain_new(void)
ldns_dnssec_data_chain *nc = LDNS_CALLOC(ldns_dnssec_data_chain, 1);
if(!nc) return NULL;
/*
- * not needed anymore because CALLOC initalizes everything to zero.
+ * not needed anymore because CALLOC initializes everything to zero.
nc->rrset = NULL;
nc->parent_type = 0;
@@ -415,14 +415,17 @@ ldns_dnssec_build_data_chain(ldns_resolver *res,
new_chain);
}
if (type != LDNS_RR_TYPE_DNSKEY) {
- ldns_dnssec_build_data_chain_dnskey(res,
- qflags,
- pkt,
- signatures,
- new_chain,
- key_name,
- c
- );
+ if (type != LDNS_RR_TYPE_DS ||
+ ldns_dname_is_subdomain(name, key_name)) {
+ ldns_dnssec_build_data_chain_dnskey(res,
+ qflags,
+ pkt,
+ signatures,
+ new_chain,
+ key_name,
+ c
+ );
+ }
} else {
ldns_dnssec_build_data_chain_other(res,
qflags,
@@ -594,7 +597,9 @@ ldns_dnssec_trust_tree_print_sm_fmt(FILE *out,
if (tree->parent_status[i]
== LDNS_STATUS_SSL_ERR) {
printf("; SSL Error: ");
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(HAVE_LIBRESSL)
ERR_load_crypto_strings();
+#endif
ERR_print_errors_fp(stdout);
printf("\n");
}
@@ -903,8 +908,9 @@ ldns_dnssec_derive_trust_tree_dnskey_rrset_time(
cur_status = ldns_verify_rrsig_time(
cur_rrset, cur_sig_rr,
cur_parent_rr, check_time);
- (void) ldns_dnssec_trust_tree_add_parent(new_tree,
- cur_parent_tree, cur_sig_rr, cur_status);
+ if (ldns_dnssec_trust_tree_add_parent(new_tree,
+ cur_parent_tree, cur_sig_rr, cur_status))
+ ldns_dnssec_trust_tree_free(cur_parent_tree);
}
}
}
@@ -1018,8 +1024,10 @@ ldns_dnssec_derive_trust_tree_no_sig_time(
data_chain->parent,
cur_parent_rr,
check_time);
- (void) ldns_dnssec_trust_tree_add_parent(new_tree,
- cur_parent_tree, NULL, result);
+ if (ldns_dnssec_trust_tree_add_parent(new_tree,
+ cur_parent_tree, NULL, result))
+ ldns_dnssec_trust_tree_free(cur_parent_tree);
+
}
}
}
@@ -1495,7 +1503,7 @@ ldns_dnssec_verify_denial(ldns_rr *rr,
ldns_rr_list *rrsigs)
{
ldns_rdf *rr_name;
- ldns_rdf *wildcard_name;
+ ldns_rdf *wildcard_name = NULL;
ldns_rdf *chopped_dname;
ldns_rr *cur_nsec;
size_t i;
@@ -1506,14 +1514,19 @@ ldns_dnssec_verify_denial(ldns_rr *rr,
bool type_covered = false;
bool wildcard_covered = false;
bool wildcard_type_covered = false;
+ bool rr_name_is_root = false;
- wildcard_name = ldns_dname_new_frm_str("*");
rr_name = ldns_rr_owner(rr);
- chopped_dname = ldns_dname_left_chop(rr_name);
- result = ldns_dname_cat(wildcard_name, chopped_dname);
- ldns_rdf_deep_free(chopped_dname);
- if (result != LDNS_STATUS_OK) {
- return result;
+ rr_name_is_root = ldns_rdf_size(rr_name) == 1
+ && *ldns_rdf_data(rr_name) == 0;
+ if (!rr_name_is_root) {
+ wildcard_name = ldns_dname_new_frm_str("*");
+ chopped_dname = ldns_dname_left_chop(rr_name);
+ result = ldns_dname_cat(wildcard_name, chopped_dname);
+ ldns_rdf_deep_free(chopped_dname);
+ if (result != LDNS_STATUS_OK) {
+ return result;
+ }
}
for (i = 0; i < ldns_rr_list_rr_count(nsecs); i++) {
@@ -1540,6 +1553,9 @@ ldns_dnssec_verify_denial(ldns_rr *rr,
name_covered = true;
}
+ if (rr_name_is_root)
+ continue;
+
if (ldns_dname_compare(wildcard_name,
ldns_rr_owner(cur_nsec)) == 0) {
if (ldns_nsec_bitmap_covers_type(ldns_nsec_get_bitmap(cur_nsec),
@@ -1560,6 +1576,9 @@ ldns_dnssec_verify_denial(ldns_rr *rr,
return LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED;
}
+ if (rr_name_is_root)
+ return LDNS_STATUS_OK;
+
if (wildcard_type_covered || !wildcard_covered) {
return LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED;
}
@@ -1583,8 +1602,6 @@ ldns_dnssec_verify_denial_nsec3_match( ldns_rr *rr
bool wildcard_covered = false;
ldns_rdf *zone_name;
ldns_rdf *hashed_name;
- /* self assignment to suppress uninitialized warning */
- ldns_rdf *next_closer = next_closer;
ldns_rdf *hashed_next_closer;
size_t i;
ldns_status result = LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED;
@@ -1659,6 +1676,7 @@ ldns_dnssec_verify_denial_nsec3_match( ldns_rr *rr
}
}
}
+ ldns_rdf_deep_free(hashed_name);
result = LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED;
/* wildcard no data? section 8.7 */
closest_encloser = ldns_dnssec_nsec3_closest_encloser(
@@ -1748,7 +1766,9 @@ ldns_dnssec_verify_denial_nsec3_match( ldns_rr *rr
/* Query name *is* the "next closer". */
hashed_next_closer = hashed_name;
} else {
-
+ ldns_rdf *next_closer;
+
+ ldns_rdf_deep_free(hashed_name);
/* "next closer" has less labels than the query name.
* Create the name and hash it.
*/
@@ -1762,6 +1782,7 @@ ldns_dnssec_verify_denial_nsec3_match( ldns_rr *rr
next_closer
);
(void) ldns_dname_cat(hashed_next_closer, zone_name);
+ ldns_rdf_deep_free(next_closer);
}
/* Find the NSEC3 that covers the "next closer" */
for (i = 0; i < ldns_rr_list_rr_count(nsecs); i++) {
@@ -1776,15 +1797,7 @@ ldns_dnssec_verify_denial_nsec3_match( ldns_rr *rr
break;
}
}
- if (ldns_dname_label_count(closest_encloser) + 1
- < ldns_dname_label_count(ldns_rr_owner(rr))) {
-
- /* "next closer" has less labels than the query name.
- * Dispose of the temporary variables that held that name.
- */
- ldns_rdf_deep_free(hashed_next_closer);
- ldns_rdf_deep_free(next_closer);
- }
+ ldns_rdf_deep_free(hashed_next_closer);
ldns_rdf_deep_free(closest_encloser);
}
@@ -1858,27 +1871,19 @@ ldns_verify_rrsig_gost_raw(const unsigned char* sig, size_t siglen,
EVP_PKEY*
ldns_ed255192pkey_raw(const unsigned char* key, size_t keylen)
{
- const unsigned char* pp = key; /* pp gets modified by o2i() */
+ /* ASN1 for ED25519 is 302a300506032b6570032100 <32byteskey> */
+ uint8_t pre[] = {0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65,
+ 0x70, 0x03, 0x21, 0x00};
+ int pre_len = 12;
+ uint8_t buf[256];
EVP_PKEY *evp_key;
- EC_KEY *ec;
- if(keylen != 32)
+ /* pp gets modified by d2i() */
+ const unsigned char* pp = (unsigned char*)buf;
+ if(keylen != 32 || keylen + pre_len > sizeof(buf))
return NULL; /* wrong length */
- ec = EC_KEY_new_by_curve_name(NID_X25519);
- if(!ec) return NULL;
- if(!o2i_ECPublicKey(&ec, &pp, (int)keylen)) {
- EC_KEY_free(ec);
- return NULL;
- }
- evp_key = EVP_PKEY_new();
- if(!evp_key) {
- EC_KEY_free(ec);
- return NULL;
- }
- if (!EVP_PKEY_assign_EC_KEY(evp_key, ec)) {
- EVP_PKEY_free(evp_key);
- EC_KEY_free(ec);
- return NULL;
- }
+ memmove(buf, pre, pre_len);
+ memmove(buf+pre_len, key, keylen);
+ evp_key = d2i_PUBKEY(NULL, &pp, (int)(pre_len+keylen));
return evp_key;
}
@@ -1894,8 +1899,7 @@ ldns_verify_rrsig_ed25519_raw(unsigned char* sig, size_t siglen,
/* could not convert key */
return LDNS_STATUS_CRYPTO_BOGUS;
}
- result = ldns_verify_rrsig_evp_raw(sig, siglen, rrset, evp_key,
- EVP_sha512());
+ result = ldns_verify_rrsig_evp_raw(sig, siglen, rrset, evp_key, NULL);
EVP_PKEY_free(evp_key);
return result;
}
@@ -1905,27 +1909,19 @@ ldns_verify_rrsig_ed25519_raw(unsigned char* sig, size_t siglen,
EVP_PKEY*
ldns_ed4482pkey_raw(const unsigned char* key, size_t keylen)
{
- const unsigned char* pp = key; /* pp gets modified by o2i() */
+ /* ASN1 for ED448 is 3043300506032b6571033a00 <57byteskey> */
+ uint8_t pre[] = {0x30, 0x43, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65,
+ 0x71, 0x03, 0x3a, 0x00};
+ int pre_len = 12;
+ uint8_t buf[256];
EVP_PKEY *evp_key;
- EC_KEY *ec;
- if(keylen != 57)
+ /* pp gets modified by d2i() */
+ const unsigned char* pp = (unsigned char*)buf;
+ if(keylen != 57 || keylen + pre_len > sizeof(buf))
return NULL; /* wrong length */
- ec = EC_KEY_new_by_curve_name(NID_X448);
- if(!ec) return NULL;
- if(!o2i_ECPublicKey(&ec, &pp, (int)keylen)) {
- EC_KEY_free(ec);
- return NULL;
- }
- evp_key = EVP_PKEY_new();
- if(!evp_key) {
- EC_KEY_free(ec);
- return NULL;
- }
- if (!EVP_PKEY_assign_EC_KEY(evp_key, ec)) {
- EVP_PKEY_free(evp_key);
- EC_KEY_free(ec);
- return NULL;
- }
+ memmove(buf, pre, pre_len);
+ memmove(buf+pre_len, key, keylen);
+ evp_key = d2i_PUBKEY(NULL, &pp, (int)(pre_len+keylen));
return evp_key;
}
@@ -1941,8 +1937,7 @@ ldns_verify_rrsig_ed448_raw(unsigned char* sig, size_t siglen,
/* could not convert key */
return LDNS_STATUS_CRYPTO_BOGUS;
}
- result = ldns_verify_rrsig_evp_raw(sig, siglen, rrset, evp_key,
- EVP_sha512());
+ result = ldns_verify_rrsig_evp_raw(sig, siglen, rrset, evp_key, NULL);
EVP_PKEY_free(evp_key);
return result;
}
@@ -2188,6 +2183,12 @@ ldns_rrsig2rawsig_buffer(ldns_buffer* rawsig_buf, const ldns_rr* rrsig)
#ifdef USE_GOST
case LDNS_ECC_GOST:
#endif
+#ifdef USE_ED25519
+ case LDNS_ED25519:
+#endif
+#ifdef USE_ED448
+ case LDNS_ED448:
+#endif
if (ldns_rr_rdf(rrsig, 8) == NULL) {
return LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG;
}
@@ -2229,32 +2230,6 @@ ldns_rrsig2rawsig_buffer(ldns_buffer* rawsig_buf, const ldns_rr* rrsig)
}
break;
#endif
-#ifdef USE_ED25519
- case LDNS_ED25519:
- /* EVP produces an ASN prefix on the signature, which is
- * not used in the DNS */
- if (ldns_rr_rdf(rrsig, 8) == NULL) {
- return LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG;
- }
- if (ldns_convert_ed25519_rrsig_rdf2asn1(
- rawsig_buf, ldns_rr_rdf(rrsig, 8)) != LDNS_STATUS_OK) {
- return LDNS_STATUS_MEM_ERR;
- }
- break;
-#endif
-#ifdef USE_ED448
- case LDNS_ED448:
- /* EVP produces an ASN prefix on the signature, which is
- * not used in the DNS */
- if (ldns_rr_rdf(rrsig, 8) == NULL) {
- return LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG;
- }
- if (ldns_convert_ed448_rrsig_rdf2asn1(
- rawsig_buf, ldns_rr_rdf(rrsig, 8)) != LDNS_STATUS_OK) {
- return LDNS_STATUS_MEM_ERR;
- }
- break;
-#endif
case LDNS_DH:
case LDNS_ECC:
case LDNS_INDIRECT:
@@ -2428,8 +2403,12 @@ ldns_verify_rrsig_keylist_time(
ldns_rr_list *good_keys)
{
ldns_status result;
- ldns_rr_list *valid = ldns_rr_list_new();
- if (!valid)
+ ldns_rr_list *valid;
+
+ if (!good_keys)
+ valid = NULL;
+
+ else if (!(valid = ldns_rr_list_new()))
return LDNS_STATUS_MEM_ERR;
result = ldns_verify_rrsig_keylist_notime(rrset, rrsig, keys, valid);
@@ -2633,16 +2612,31 @@ ldns_verify_rrsig_evp_raw(const unsigned char *sig, size_t siglen,
if(!ctx)
return LDNS_STATUS_MEM_ERR;
- EVP_VerifyInit(ctx, digest_type);
- EVP_VerifyUpdate(ctx,
- ldns_buffer_begin(rrset),
- ldns_buffer_position(rrset));
- res = EVP_VerifyFinal(ctx, sig, (unsigned int) siglen, key);
+#if defined(USE_ED25519) || defined(USE_ED448)
+ if(!digest_type) {
+ res = EVP_DigestVerifyInit(ctx, NULL, digest_type, NULL, key);
+ if(res == 1) {
+ res = EVP_DigestVerify(ctx, sig, siglen,
+ ldns_buffer_begin(rrset),
+ ldns_buffer_position(rrset));
+ }
+ } else {
+#else
+ res = 0;
+ if(digest_type) {
+#endif
+ EVP_VerifyInit(ctx, digest_type);
+ EVP_VerifyUpdate(ctx,
+ ldns_buffer_begin(rrset),
+ ldns_buffer_position(rrset));
+ res = EVP_VerifyFinal(ctx, sig, (unsigned int) siglen, key);
+ }
EVP_MD_CTX_destroy(ctx);
if (res == 1) {
return LDNS_STATUS_OK;
+
} else if (res == 0) {
return LDNS_STATUS_CRYPTO_BOGUS;
}
diff --git a/dnssec_zone.c b/dnssec_zone.c
index f610a3cfe8fc..7be6791e7f5d 100644
--- a/dnssec_zone.c
+++ b/dnssec_zone.c
@@ -323,7 +323,7 @@ ldns_dnssec_name_new(void)
return NULL;
}
/*
- * not needed anymore because CALLOC initalizes everything to zero.
+ * not needed anymore because CALLOC initializes everything to zero.
new_name->name = NULL;
new_name->rrsets = NULL;
@@ -370,9 +370,10 @@ ldns_dnssec_name_free_internal(ldns_dnssec_name *name,
ldns_dnssec_rrs_free_internal(name->nsec_signatures, deep);
}
if (name->hashed_name) {
- if (deep) {
- ldns_rdf_deep_free(name->hashed_name);
- }
+ /* Hashed name is always allocated when signing,
+ * so always deep free
+ */
+ ldns_rdf_deep_free(name->hashed_name);
}
LDNS_FREE(name);
}
@@ -588,7 +589,7 @@ rr_is_rrsig_covering(ldns_rr* rr, ldns_rr_type t)
/* When the zone is first read into an list and then inserted into an
* ldns_dnssec_zone (rbtree) the nodes of the rbtree are allocated close (next)
* to each other. Because ldns-verify-zone (the only program that uses this
- * function) uses the rbtree mostly for sequentual walking, this results
+ * function) uses the rbtree mostly for sequential walking, this results
* in a speed increase (of 15% on linux) because we have less CPU-cache misses.
*/
#define FASTER_DNSSEC_ZONE_NEW_FRM_FP 1 /* Because of L2 cache efficiency */
@@ -604,9 +605,13 @@ ldns_todo_nsec3_ents_node_free(ldns_rbnode_t *node, void *arg) {
LDNS_FREE(node);
}
+ldns_status _ldns_rr_new_frm_fp_l_internal(ldns_rr **newrr, FILE *fp,
+ uint32_t *default_ttl, ldns_rdf **origin, ldns_rdf **prev,
+ int *line_nr, bool *explicit_ttl);
+
ldns_status
ldns_dnssec_zone_new_frm_fp_l(ldns_dnssec_zone** z, FILE* fp, const ldns_rdf* origin,
- uint32_t ttl, ldns_rr_class ATTR_UNUSED(c), int* line_nr)
+ uint32_t default_ttl, ldns_rr_class ATTR_UNUSED(c), int* line_nr)
{
ldns_rr* cur_rr;
size_t i;
@@ -626,7 +631,7 @@ ldns_dnssec_zone_new_frm_fp_l(ldns_dnssec_zone** z, FILE* fp, const ldns_rdf* or
nsec3_ents (where ent is e.n.t.; i.e. empty non terminal) will
hold the NSEC3s that still didn't have a matching name in the
zone tree, even after all names were read. They can only match
- after the zone is equiped with all the empty non terminals. */
+ after the zone is equipped with all the empty non terminals. */
ldns_rbtree_t todo_nsec3_ents;
ldns_rbnode_t *new_node;
ldns_rr_list* todo_nsec3_rrsigs = ldns_rr_list_new();
@@ -636,13 +641,19 @@ ldns_dnssec_zone_new_frm_fp_l(ldns_dnssec_zone** z, FILE* fp, const ldns_rdf* or
#ifdef FASTER_DNSSEC_ZONE_NEW_FRM_FP
ldns_zone* zone = NULL;
#else
- uint32_t my_ttl = ttl;
+ ldns_rr *prev_rr = NULL;
+ uint32_t my_ttl = default_ttl;
+ /* RFC 1035 Section 5.1, says 'Omitted class and TTL values are default
+ * to the last explicitly stated values.'
+ */
+ bool ttl_from_TTL = false;
+ bool explicit_ttl = false;
#endif
ldns_rbtree_init(&todo_nsec3_ents, ldns_dname_compare_v);
#ifdef FASTER_DNSSEC_ZONE_NEW_FRM_FP
- status = ldns_zone_new_frm_fp_l(&zone, fp, origin,ttl, c, line_nr);
+ status = ldns_zone_new_frm_fp_l(&zone, fp, origin, default_ttl, c, line_nr);
if (status != LDNS_STATUS_OK)
goto error;
#endif
@@ -672,13 +683,61 @@ ldns_dnssec_zone_new_frm_fp_l(ldns_dnssec_zone** z, FILE* fp, const ldns_rdf* or
status = LDNS_STATUS_OK;
#else
while (!feof(fp)) {
+ /* If ttl came from $TTL line, then it should be the default.
+ * (RFC 2308 Section 4)
+ * Otherwise it "defaults to the last explicitly stated value"
+ * (RFC 1035 Section 5.1)
+ */
+ if (ttl_from_TTL)
+ my_ttl = default_ttl;
status = ldns_rr_new_frm_fp_l(&cur_rr, fp, &my_ttl, &my_origin,
- &my_prev, line_nr);
-
+ &my_prev, line_nr, &explicit_ttl);
#endif
switch (status) {
case LDNS_STATUS_OK:
+#ifndef FASTER_DNSSEC_ZONE_NEW_FRM_FP
+ if (explicit_ttl) {
+ if (!ttl_from_TTL) {
+ /* No $TTL, so ttl "defaults to the
+ * last explicitly stated value"
+ * (RFC 1035 Section 5.1)
+ */
+ my_ttl = ldns_rr_ttl(cur_rr);
+ }
+ /* When ttl is implicit, try to adhere to the rules as
+ * much as possible. (also for compatibility with bind)
+ * This was changed when fixing an issue with ZONEMD
+ * which hashes the TTL too.
+ */
+ } else if (ldns_rr_get_type(cur_rr) == LDNS_RR_TYPE_SIG
+ || ldns_rr_get_type(cur_rr) == LDNS_RR_TYPE_RRSIG) {
+ if (ldns_rr_rd_count(cur_rr) >= 4
+ && ldns_rdf_get_type(ldns_rr_rdf(cur_rr, 3)) == LDNS_RDF_TYPE_INT32)
+
+ /* SIG without explicit ttl get ttl
+ * from the original_ttl field
+ * (RFC 2535 Section 7.2)
+ *
+ * Similarly for RRSIG, but stated less
+ * specifically in the spec.
+ * (RFC 4034 Section 3)
+ */
+ ldns_rr_set_ttl(cur_rr,
+ ldns_rdf2native_int32(
+ ldns_rr_rdf(rr, 3)));
+
+ } else if (prev_rr
+ && ldns_rr_get_type(prev_rr) == ldns_rr_get_type(cur_rr)
+ && ldns_dname_compare( ldns_rr_owner(prev_rr)
+ , ldns_rr_owner(cur_rr)) == 0)
+
+ /* "TTLs of all RRs in an RRSet must be the same"
+ * (RFC 2881 Section 5.2)
+ */
+ ldns_rr_set_ttl(cur_rr, ldns_rr_ttl(prev_rr));
+ prev_rr = cur_rr;
+#endif
status = ldns_dnssec_zone_add_rr(newzone, cur_rr);
if (status ==
LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND) {
@@ -698,9 +757,16 @@ ldns_dnssec_zone_new_frm_fp_l(ldns_dnssec_zone** z, FILE* fp, const ldns_rdf* or
break;
+ case LDNS_STATUS_SYNTAX_TTL: /* the ttl was set*/
+#ifndef FASTER_DNSSEC_ZONE_NEW_FRM_FP
+ default_ttl = my_ttl;
+ ttl_from_TTL = true;
+#endif
+ status = LDNS_STATUS_OK;
+ break;
+
case LDNS_STATUS_SYNTAX_EMPTY: /* empty line was seen */
- case LDNS_STATUS_SYNTAX_TTL: /* the ttl was set*/
case LDNS_STATUS_SYNTAX_ORIGIN: /* the origin was set*/
status = LDNS_STATUS_OK;
break;
@@ -746,6 +812,7 @@ ldns_dnssec_zone_new_frm_fp_l(ldns_dnssec_zone** z, FILE* fp, const ldns_rdf* or
newzone = NULL;
} else {
ldns_dnssec_zone_free(newzone);
+ newzone = NULL;
}
error:
@@ -792,10 +859,21 @@ ldns_dnssec_name_node_deep_free(ldns_rbnode_t *node, void *arg) {
LDNS_FREE(node);
}
+static void
+ldns_hashed_names_node_free(ldns_rbnode_t *node, void *arg) {
+ (void) arg;
+ LDNS_FREE(node);
+}
+
void
ldns_dnssec_zone_free(ldns_dnssec_zone *zone)
{
if (zone) {
+ if (zone->hashed_names) {
+ ldns_traverse_postorder(zone->hashed_names,
+ ldns_hashed_names_node_free, NULL);
+ LDNS_FREE(zone->hashed_names);
+ }
if (zone->names) {
/* destroy all name structures within the tree */
ldns_traverse_postorder(zone->names,
@@ -811,6 +889,11 @@ void
ldns_dnssec_zone_deep_free(ldns_dnssec_zone *zone)
{
if (zone) {
+ if (zone->hashed_names) {
+ ldns_traverse_postorder(zone->hashed_names,
+ ldns_hashed_names_node_free, NULL);
+ LDNS_FREE(zone->hashed_names);
+ }
if (zone->names) {
/* destroy all name structures within the tree */
ldns_traverse_postorder(zone->names,
@@ -833,12 +916,6 @@ ldns_dnssec_name_make_hashed_name(ldns_dnssec_zone *zone,
ldns_dnssec_name* name, ldns_rr* nsec3rr);
static void
-ldns_hashed_names_node_free(ldns_rbnode_t *node, void *arg) {
- (void) arg;
- LDNS_FREE(node);
-}
-
-static void
ldns_dnssec_zone_hashed_names_from_nsec3(
ldns_dnssec_zone* zone, ldns_rr* nsec3rr)
{
@@ -907,20 +984,22 @@ ldns_dnssec_name_make_hashed_name(ldns_dnssec_zone *zone,
static ldns_rbnode_t *
ldns_dnssec_zone_find_nsec3_original(ldns_dnssec_zone *zone, ldns_rr *rr) {
ldns_rdf *hashed_name;
+ ldns_rbnode_t *to_return;
- hashed_name = ldns_dname_label(ldns_rr_owner(rr), 0);
- if (hashed_name == NULL) {
- return NULL;
- }
if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_NSEC3 && ! zone->_nsec3params){
ldns_dnssec_zone_hashed_names_from_nsec3(zone, rr);
}
if (zone->hashed_names == NULL) {
- ldns_rdf_deep_free(hashed_name);
return NULL;
}
- return ldns_rbtree_search(zone->hashed_names, hashed_name);
+ hashed_name = ldns_dname_label(ldns_rr_owner(rr), 0);
+ if (hashed_name == NULL) {
+ return NULL;
+ }
+ to_return = ldns_rbtree_search(zone->hashed_names, hashed_name);
+ ldns_rdf_deep_free(hashed_name);
+ return to_return;
}
ldns_status
@@ -1105,8 +1184,12 @@ ldns_dnssec_zone_add_empty_nonterminals_nsec3(
ldns_rdf *ent_name;
if (!(ent_name = ldns_dname_clone_from(
- next_name, i)))
+ next_name, i))) {
+
+ ldns_rdf_deep_free(l1);
+ ldns_rdf_deep_free(l2);
return LDNS_STATUS_MEM_ERR;
+ }
if (nsec3s && zone->_nsec3params) {
ldns_rdf *ent_hashed_name;
@@ -1114,28 +1197,35 @@ ldns_dnssec_zone_add_empty_nonterminals_nsec3(
if (!(ent_hashed_name =
ldns_nsec3_hash_name_frm_nsec3(
zone->_nsec3params,
- ent_name)))
+ ent_name))) {
+ ldns_rdf_deep_free(l1);
+ ldns_rdf_deep_free(l2);
+ ldns_rdf_deep_free(ent_name);
return LDNS_STATUS_MEM_ERR;
+ }
node = ldns_rbtree_search(nsec3s,
ent_hashed_name);
+ ldns_rdf_deep_free(ent_hashed_name);
if (!node) {
ldns_rdf_deep_free(l1);
ldns_rdf_deep_free(l2);
+ ldns_rdf_deep_free(ent_name);
continue;
}
}
new_name = ldns_dnssec_name_new();
if (!new_name) {
+ ldns_rdf_deep_free(l1);
+ ldns_rdf_deep_free(l2);
+ ldns_rdf_deep_free(ent_name);
return LDNS_STATUS_MEM_ERR;
}
new_name->name = ent_name;
- if (!new_name->name) {
- ldns_dnssec_name_free(new_name);
- return LDNS_STATUS_MEM_ERR;
- }
new_name->name_alloced = true;
new_node = LDNS_MALLOC(ldns_rbnode_t);
if (!new_node) {
+ ldns_rdf_deep_free(l1);
+ ldns_rdf_deep_free(l2);
ldns_dnssec_name_free(new_name);
return LDNS_STATUS_MEM_ERR;
}
@@ -1190,3 +1280,706 @@ ldns_dnssec_zone_is_nsec3_optout(const ldns_dnssec_zone* zone)
}
return false;
}
+
+/*
+ * Stuff for calculating and verifying zone digests
+ */
+typedef enum dnssec_zone_rr_iter_state {
+ DNSSEC_ZONE_RR_ITER_LT_RRSIG
+ , DNSSEC_ZONE_RR_ITER_RRSIGs_NO_NSEC
+ , DNSSEC_ZONE_RR_ITER_REST
+ , DNSSEC_ZONE_RR_ITER_RRSIGs_NSEC
+ , DNSSEC_ZONE_RR_ITER_RRSIGs_NSEC_REST
+ , DNSSEC_ZONE_RR_ITER_NSEC3
+ , DNSSEC_ZONE_RR_ITER_FINI
+} dnssec_zone_rr_iter_state;
+
+typedef struct dnssec_zone_rr_iter {
+ ldns_dnssec_zone *zone;
+ ldns_rbnode_t *node;
+ ldns_dnssec_name *name;
+ ldns_dnssec_rrsets *rrsets;
+ ldns_dnssec_rrs *rrs;
+ ldns_dnssec_rrsets *rrsets4rrsigs;
+ ldns_rbnode_t *nsec3_node;
+ ldns_dnssec_name *nsec3_name;
+ dnssec_zone_rr_iter_state state;
+ ldns_rdf *apex_name;
+ uint8_t apex_labs;
+} dnssec_zone_rr_iter;
+
+INLINE void
+dnssec_zone_rr_iter_set_state_for_next_name(dnssec_zone_rr_iter *i)
+{
+ /* Make sure the i->name is "in zone" (i.e. below the apex) */
+ if (i->apex_name) {
+ ldns_rdf *name = (ldns_rdf *)i->node->key;
+
+ while (i->name && name != i->apex_name /* not apex */
+
+ && ( ldns_dname_label_count(name) != i->apex_labs
+ || ldns_dname_compare(name, i->apex_name)) /* not apex */
+
+ && !ldns_dname_is_subdomain(name, i->apex_name) /* no sub */) {
+
+ /* next name */
+ i->node = ldns_rbtree_next(i->node);
+ if (i->node == LDNS_RBTREE_NULL)
+ i->name = NULL;
+ else {
+ i->name = (ldns_dnssec_name *)i->node->data;
+ name = (ldns_rdf *)i->node->key;
+ }
+ }
+ }
+ /* determine state */
+ if (!i->name) {
+ if (!i->nsec3_name)
+ i->state = DNSSEC_ZONE_RR_ITER_FINI;
+ else {
+ i->rrs = i->nsec3_name->nsec_signatures;
+ i->state = DNSSEC_ZONE_RR_ITER_NSEC3;
+ }
+ } else if (!i->nsec3_name) {
+ i->rrsets = i->name->rrsets;
+ i->state = DNSSEC_ZONE_RR_ITER_LT_RRSIG;
+
+ } else if (ldns_dname_compare( ldns_rr_owner(i->nsec3_name->nsec)
+ , (ldns_rdf *)i->node->key) < 0) {
+ i->rrs = i->nsec3_name->nsec_signatures;
+ i->state = DNSSEC_ZONE_RR_ITER_NSEC3;
+ } else {
+ i->rrsets = i->name->rrsets;
+ i->state = DNSSEC_ZONE_RR_ITER_LT_RRSIG;
+ }
+}
+
+/**
+ * Iterate over the RR's in the ldns_dnssec_zone in canonical order.
+ * There are three possible paths through the RR's in a ldns_dnssec_name.
+ *
+ * 1. There is no NSEC:
+ *
+ * 1.1. All the RRs in the name->rrsets with type < RRSIG,
+ * state: DNSSEC_ZONE_RR_ITER_LT_RRSIG
+ *
+ * 1.2. Then all the RRSIGs from name->rrsets (likely none)
+ * state: DNSSEC_ZONE_RR_ITER_RRSIGs_NO_NSEC
+ *
+ * 1.3. Finally the remaining RRs in name->rrsets (type > RRSIG)
+ * state: DNSSEC_ZONE_RR_ITER_REST
+ *
+ *
+ * 2. There is a NSEC of type NSEC with this name:
+ *
+ * 2.1. All the RRs in the name->rrsets with type < RRSIG,
+ * state: DNSSEC_ZONE_RR_ITER_LT_RRSIG
+ *
+ * 2.2. Then all the RRSIGs from name->rrsets with type < NSEC
+ * state: DNSSEC_ZONE_RR_ITER_RRSIGs_NO_NSEC
+ *
+ * 2.3. Then the signatures of the NSEC RR, followed by
+ * the signatures of the remaining name->rrsets (type > NSEC),
+ * followed by the NSEC rr.
+ * state: DNSSEC_ZONE_RR_ITER_RRSIGs_NO_NSEC
+ *
+ * 2.4. Finally the remaining RRs in name->rrsets (type > RRSIG)
+ * state: DNSSEC_ZONE_RR_ITER_REST
+ *
+ *
+ * 3. There is a NSEC of type NSEC3 for this name:
+ *
+ * 3.1. If the NSEC3 name is before the name for other RRsets in the zone,
+ * Then all signatures of the NSEC3 RR, followed by the NSEC3
+ * state: DNSSEC_ZONE_RR_ITER_NSEC3
+ *
+ * otherwise follow path for "no NSEC" for the name for other RRsets
+ */
+static ldns_rr *
+dnssec_zone_rr_iter_next(dnssec_zone_rr_iter *i)
+{
+ ldns_rr *nsec3;
+
+ for (;;) {
+ if (i->rrs) {
+ ldns_rr *rr = i->rrs->rr;
+ i->rrs = i->rrs->next;
+ return rr;
+ }
+ switch (i->state) {
+ case DNSSEC_ZONE_RR_ITER_LT_RRSIG:
+ if (i->rrsets
+ && i->rrsets->type < LDNS_RR_TYPE_RRSIG) {
+
+ i->rrs = i->rrsets->rrs;
+ i->rrsets = i->rrsets->next;
+ break;
+ }
+ i->rrsets4rrsigs = i->name->rrsets;
+ if (i->name->nsec && ldns_rr_get_type(i->name->nsec)
+ == LDNS_RR_TYPE_NSEC) {
+
+ i->state = DNSSEC_ZONE_RR_ITER_RRSIGs_NSEC;
+ break;
+ }
+ i->state = DNSSEC_ZONE_RR_ITER_RRSIGs_NO_NSEC;
+ /* fallthrough */
+
+ case DNSSEC_ZONE_RR_ITER_RRSIGs_NO_NSEC:
+ if (i->rrsets4rrsigs) {
+ i->rrs = i->rrsets4rrsigs->signatures;
+ i->rrsets4rrsigs = i->rrsets4rrsigs->next;
+ break;
+ }
+ i->state = DNSSEC_ZONE_RR_ITER_REST;
+ /* fallthrough */
+
+ case DNSSEC_ZONE_RR_ITER_REST:
+ if (i->rrsets) {
+ i->rrs = i->rrsets->rrs;
+ i->rrsets = i->rrsets->next;
+ break;
+ }
+ /* next name */
+ i->node = ldns_rbtree_next(i->node);
+ i->name = i->node == LDNS_RBTREE_NULL ? NULL
+ : (ldns_dnssec_name *)i->node->data;
+
+ dnssec_zone_rr_iter_set_state_for_next_name(i);
+ break;
+
+ case DNSSEC_ZONE_RR_ITER_RRSIGs_NSEC:
+ if (i->rrsets4rrsigs
+ && i->rrsets4rrsigs->type < LDNS_RR_TYPE_NSEC) {
+
+ i->rrs = i->rrsets4rrsigs->signatures;
+ i->rrsets4rrsigs = i->rrsets4rrsigs->next;
+ break;
+ }
+ i->state = DNSSEC_ZONE_RR_ITER_RRSIGs_NSEC_REST;
+ i->rrs = i->name->nsec_signatures;
+ break;
+
+ case DNSSEC_ZONE_RR_ITER_RRSIGs_NSEC_REST:
+ if (i->rrsets4rrsigs) {
+ i->rrs = i->rrsets4rrsigs->signatures;
+ i->rrsets4rrsigs = i->rrsets4rrsigs->next;
+ break;
+ }
+ i->state = DNSSEC_ZONE_RR_ITER_REST;
+ return i->name->nsec;
+
+ case DNSSEC_ZONE_RR_ITER_NSEC3:
+ nsec3 = i->nsec3_name->nsec;
+
+ /* next nsec3 */
+ do {
+ i->nsec3_node
+ = ldns_rbtree_next(i->nsec3_node);
+ i->nsec3_name
+ = i->nsec3_node == LDNS_RBTREE_NULL ? NULL
+ : (ldns_dnssec_name*)i->nsec3_node->data;
+
+ /* names for glue can be in the hashed_names
+ * tree, but will not have a NSEC3
+ */
+ } while (i->nsec3_name && !i->nsec3_name->nsec);
+
+ dnssec_zone_rr_iter_set_state_for_next_name(i);
+ return nsec3;
+
+ case DNSSEC_ZONE_RR_ITER_FINI:
+ return NULL;
+ }
+ }
+}
+
+static ldns_rr *
+dnssec_zone_rr_iter_first(dnssec_zone_rr_iter *i, ldns_dnssec_zone *zone)
+{
+ if (!i || !zone)
+ return NULL;
+
+ memset(i, 0, sizeof(*i));
+ i->zone = zone;
+ if (zone->soa && zone->soa->name) {
+ i->apex_name = zone->soa->name;
+ i->apex_labs = ldns_dname_label_count(i->apex_name);
+ } else
+ i->apex_name = NULL;
+
+
+ i->node = ldns_rbtree_first(zone->names);
+ i->name = i->node == LDNS_RBTREE_NULL ? NULL
+ : (ldns_dnssec_name *)i->node->data;
+
+ if (zone->hashed_names) {
+ do {
+ i->nsec3_node = ldns_rbtree_first(zone->hashed_names);
+ i->nsec3_name = i->nsec3_node == LDNS_RBTREE_NULL ?NULL
+ : (ldns_dnssec_name*)i->nsec3_node->data;
+ } while (i->nsec3_name && !i->nsec3_name->nsec);
+ }
+ dnssec_zone_rr_iter_set_state_for_next_name(i);
+ return dnssec_zone_rr_iter_next(i);
+}
+
+enum enum_zonemd_scheme {
+ ZONEMD_SCHEME_FIRST = 1,
+ ZONEMD_SCHEME_SIMPLE = 1,
+ ZONEMD_SCHEME_LAST = 1
+};
+typedef enum enum_zonemd_scheme zonemd_scheme;
+
+enum enum_zonemd_hash {
+ ZONEMD_HASH_FIRST = 1,
+ ZONEMD_HASH_SHA384 = 1,
+ ZONEMD_HASH_SHA512 = 2,
+ ZONEMD_HASH_LAST = 2
+};
+typedef enum enum_zonemd_hash zonemd_hash;
+
+struct struct_zone_digester {
+ ldns_sha384_CTX sha384_CTX;
+ ldns_sha512_CTX sha512_CTX;
+ unsigned simple_sha384 : 1;
+ unsigned simple_sha512 : 1;
+ unsigned double_sha384 : 1;
+ unsigned double_sha512 : 1;
+};
+typedef struct struct_zone_digester zone_digester;
+
+INLINE bool zone_digester_set(zone_digester *zd)
+{ return zd && (zd->simple_sha384 || zd->simple_sha512); }
+
+INLINE void zone_digester_init(zone_digester *zd)
+{ memset(zd, 0, sizeof(*zd)); }
+
+static ldns_status
+zone_digester_add(zone_digester *zd, zonemd_scheme scheme, zonemd_hash hash)
+{
+ if (!zd)
+ return LDNS_STATUS_NULL;
+
+ switch (scheme) {
+ case ZONEMD_SCHEME_SIMPLE:
+ switch (hash) {
+ case ZONEMD_HASH_SHA384:
+ if (zd->double_sha384)
+ return LDNS_STATUS_ZONEMD_DOUBLE_OCCURRENCE;
+
+ else if (zd->simple_sha384) {
+ zd->simple_sha384 = 0;
+ zd->double_sha384 = 1;
+ return LDNS_STATUS_ZONEMD_DOUBLE_OCCURRENCE;
+ }
+ ldns_sha384_init(&zd->sha384_CTX);
+ zd->simple_sha384 = 1;
+ break;
+
+ case ZONEMD_HASH_SHA512:
+ if (zd->double_sha512)
+ return LDNS_STATUS_ZONEMD_DOUBLE_OCCURRENCE;
+
+ else if (zd->simple_sha512) {
+ zd->simple_sha512 = 0;
+ zd->double_sha512 = 1;
+ return LDNS_STATUS_ZONEMD_DOUBLE_OCCURRENCE;
+ }
+ ldns_sha512_init(&zd->sha512_CTX);
+ zd->simple_sha512 = 1;
+ break;
+ default:
+ return LDNS_STATUS_ZONEMD_UNKNOWN_HASH;
+ }
+ break;
+ default:
+ return LDNS_STATUS_ZONEMD_UNKNOWN_SCHEME;
+ }
+ return LDNS_STATUS_OK;
+}
+
+static ldns_status
+zone_digester_update(zone_digester *zd, ldns_rr *rr)
+{
+ uint8_t data[65536];
+ ldns_buffer buf;
+ ldns_status st;
+
+ buf._data = data;
+ buf._position = 0;
+ buf._limit = sizeof(data);
+ buf._capacity = sizeof(data);
+ buf._fixed = 1;
+ buf._status = LDNS_STATUS_OK;
+
+ if ((st = ldns_rr2buffer_wire_canonical(&buf, rr, LDNS_SECTION_ANSWER)))
+ return st;
+
+ if (zd->simple_sha384)
+ ldns_sha384_update(&zd->sha384_CTX, data, buf._position);
+
+ if (zd->simple_sha512)
+ ldns_sha512_update(&zd->sha512_CTX, data, buf._position);
+
+ return LDNS_STATUS_OK;
+}
+
+INLINE ldns_rr *
+new_zonemd(ldns_rr *soa, zonemd_hash hash)
+{
+ ldns_rr *rr = NULL;
+ uint8_t *data = NULL;
+ ldns_rdf *rdf;
+ size_t md_len = hash == ZONEMD_HASH_SHA384
+ ? LDNS_SHA384_DIGEST_LENGTH
+ : LDNS_SHA512_DIGEST_LENGTH;
+
+ if (!(rr = ldns_rr_new_frm_type(LDNS_RR_TYPE_ZONEMD)))
+ return NULL;
+
+ if (!(rdf = ldns_rdf_clone(ldns_rr_owner(soa))))
+ goto error;
+
+ ldns_rr_set_owner(rr, rdf);
+ ldns_rr_set_class(rr, ldns_rr_get_class(soa));
+ ldns_rr_set_ttl(rr, ldns_rr_ttl(soa));
+
+ if (!(rdf = ldns_rdf_clone(ldns_rr_rdf(soa, 2))))
+ goto error;
+ ldns_rr_set_rdf(rr, rdf, 0);
+
+ if (!(rdf = ldns_native2rdf_int8(LDNS_RDF_TYPE_INT8, 1)))
+ goto error;
+ ldns_rr_set_rdf(rr, rdf, 1);
+
+ if (!(rdf = ldns_native2rdf_int8(LDNS_RDF_TYPE_INT8, hash)))
+ goto error;
+ ldns_rr_set_rdf(rr, rdf, 2);
+
+ if (!(data = LDNS_XMALLOC(uint8_t, md_len)))
+ goto error;
+
+ if (!(rdf = ldns_rdf_new(LDNS_RDF_TYPE_HEX, md_len, data)))
+ goto error;
+ ldns_rr_set_rdf(rr, rdf, 3);
+
+ return rr;
+error:
+ if (data)
+ LDNS_FREE(data);
+ ldns_rr_free(rr);
+ return NULL;
+}
+
+static ldns_rr_list *
+zone_digester_export(
+ zone_digester *zd, ldns_rr *soa, ldns_status *ret_st)
+{
+ ldns_status st = LDNS_STATUS_OK;
+ ldns_rr_list *rr_list = NULL;
+ ldns_rr *sha384 = NULL;
+ ldns_rr *sha512 = NULL;
+
+ if (!zd || !soa)
+ st = LDNS_STATUS_NULL;
+
+ else if (ldns_rr_get_type(soa) != LDNS_RR_TYPE_SOA
+ || ldns_rr_rd_count(soa) < 3)
+ st = LDNS_STATUS_ZONEMD_INVALID_SOA;
+
+ else if (!(rr_list = ldns_rr_list_new()))
+ st = LDNS_STATUS_MEM_ERR;
+
+ else if (zd->simple_sha384
+ && !(sha384 = new_zonemd(soa, ZONEMD_HASH_SHA384)))
+ st = LDNS_STATUS_MEM_ERR;
+
+ else if (zd->simple_sha512
+ && !(sha512 = new_zonemd(soa, ZONEMD_HASH_SHA512)))
+ st = LDNS_STATUS_MEM_ERR;
+
+ else if (zd->simple_sha384
+ && !ldns_rr_list_push_rr(rr_list, sha384))
+ st = LDNS_STATUS_MEM_ERR;
+
+ else if (zd->simple_sha512
+ && !ldns_rr_list_push_rr(rr_list, sha512)) {
+ if (zd->simple_sha384)
+ sha384 = NULL; /* deleted by ldns_rr_list_deep_free */
+ st = LDNS_STATUS_MEM_ERR;
+
+ } else {
+ if (sha384)
+ ldns_sha384_final( ldns_rdf_data(ldns_rr_rdf(sha384,3))
+ , &zd->sha384_CTX);
+ if (sha512)
+ ldns_sha512_final( ldns_rdf_data(ldns_rr_rdf(sha512,3))
+ , &zd->sha512_CTX);
+ return rr_list;
+ }
+ if (ret_st)
+ *ret_st = st;
+ if (sha384)
+ ldns_rr_free(sha384);
+ if (sha512)
+ ldns_rr_free(sha512);
+ if (rr_list)
+ ldns_rr_list_deep_free(rr_list);
+ return NULL;
+}
+
+static ldns_status
+ldns_digest_zone(ldns_dnssec_zone *zone, zone_digester *zd)
+{
+ ldns_status st = LDNS_STATUS_OK;
+ dnssec_zone_rr_iter rr_iter;
+ ldns_rr *rr;
+ ldns_rdf *apex_name; /* name of zone apex */
+
+ if (!zone || !zd || !zone->soa || !zone->soa->name)
+ return LDNS_STATUS_NULL;
+
+ apex_name = zone->soa->name;
+ for ( rr = dnssec_zone_rr_iter_first(&rr_iter, zone)
+ ; rr && !st
+ ; rr = dnssec_zone_rr_iter_next(&rr_iter)) {
+ /* Skip apex ZONEMD RRs */
+ if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_ZONEMD
+ && !ldns_dname_compare(ldns_rr_owner(rr), apex_name))
+ continue;
+ /* Skip RRSIGs for apex ZONEMD RRs */
+ if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_RRSIG
+ && LDNS_RR_TYPE_ZONEMD == ldns_rdf2rr_type(
+ ldns_rr_rrsig_typecovered(rr))
+ && !ldns_dname_compare(ldns_rr_owner(rr), apex_name))
+ continue;
+ st = zone_digester_update(zd, rr);
+ }
+ return st;
+}
+
+ldns_status
+ldns_dnssec_zone_verify_zonemd(ldns_dnssec_zone *zone)
+{
+ ldns_dnssec_rrsets *zonemd, *soa;
+ zone_digester zd;
+ ldns_dnssec_rrs *rrs;
+ ldns_rr *soa_rr;
+ ldns_status st;
+ uint8_t simple_sha384[LDNS_SHA384_DIGEST_LENGTH];
+ uint8_t simple_sha512[LDNS_SHA512_DIGEST_LENGTH];
+ size_t valid_zonemds;
+
+ if (!zone)
+ return LDNS_STATUS_NULL;
+
+ zonemd = ldns_dnssec_zone_find_rrset(
+ zone, zone->soa->name, LDNS_RR_TYPE_ZONEMD);
+ if (!zonemd) {
+ ldns_rbnode_t *nsec3_node;
+
+ /* we need proof of non-existence for ZONEMD at the apex */
+ if (zone->soa->nsec) {
+ if (ldns_nsec_bitmap_covers_type(ldns_nsec_get_bitmap(
+ zone->soa->nsec),
+ LDNS_RR_TYPE_ZONEMD))
+ return LDNS_STATUS_NO_ZONEMD;
+
+ } else if (!zone->soa->hashed_name || !zone->hashed_names)
+ return LDNS_STATUS_NO_ZONEMD;
+
+ else if (LDNS_RBTREE_NULL ==
+ (nsec3_node = ldns_rbtree_search( zone->hashed_names
+ , zone->soa->hashed_name)))
+ return LDNS_STATUS_NO_ZONEMD;
+ else {
+ ldns_dnssec_name *nsec3
+ = (ldns_dnssec_name *)nsec3_node->data;
+ if (ldns_nsec_bitmap_covers_type(ldns_nsec_get_bitmap(
+ nsec3->nsec),
+ LDNS_RR_TYPE_ZONEMD))
+ return LDNS_STATUS_NO_ZONEMD;
+ }
+ /* ZONEMD at apex does really not exist */
+ return LDNS_STATUS_OK;
+ }
+ soa = ldns_dnssec_zone_find_rrset(
+ zone, zone->soa->name, LDNS_RR_TYPE_SOA);
+ if (!soa || !soa->rrs || !soa->rrs->rr)
+ return LDNS_STATUS_ZONEMD_INVALID_SOA;
+
+ soa_rr = soa->rrs->rr;
+ if (ldns_rr_get_type(soa_rr) != LDNS_RR_TYPE_SOA
+ || ldns_rr_rd_count(soa_rr) < 3)
+ return LDNS_STATUS_ZONEMD_INVALID_SOA;
+
+ zone_digester_init(&zd);
+ for (rrs = zonemd->rrs; rrs; rrs = rrs->next) {
+ if (!rrs->rr
+ || ldns_rr_get_type(rrs->rr) != LDNS_RR_TYPE_ZONEMD
+ || ldns_rr_rd_count(rrs->rr) < 4)
+ continue;
+
+ /* serial should match SOA's serial */
+ if (ldns_rdf2native_int32(ldns_rr_rdf(soa_rr, 2))
+ != ldns_rdf2native_int32(ldns_rr_rdf(rrs->rr, 0)))
+ continue;
+
+ /* Add (scheme, hash) to digester */
+ zone_digester_add(&zd,
+ ldns_rdf2native_int8(ldns_rr_rdf(rrs->rr, 1)),
+ ldns_rdf2native_int8(ldns_rr_rdf(rrs->rr, 2)));
+ }
+ if (!zone_digester_set(&zd))
+ return LDNS_STATUS_NO_VALID_ZONEMD;
+
+ if ((st = ldns_digest_zone(zone, &zd)))
+ return st;
+
+ if (zd.simple_sha384)
+ ldns_sha384_final(simple_sha384, &zd.sha384_CTX);
+ if (zd.simple_sha512)
+ ldns_sha512_final(simple_sha512, &zd.sha512_CTX);
+
+ valid_zonemds = 0;
+ for (rrs = zonemd->rrs; rrs; rrs = rrs->next) {
+ if (!rrs->rr
+ || ldns_rr_get_type(rrs->rr) != LDNS_RR_TYPE_ZONEMD
+ || ldns_rr_rd_count(rrs->rr) < 4)
+ continue;
+
+ /* serial should match SOA's serial */
+ if (ldns_rdf2native_int32(ldns_rr_rdf(soa_rr, 2))
+ != ldns_rdf2native_int32(ldns_rr_rdf(rrs->rr, 0)))
+ continue;
+
+ if (ZONEMD_SCHEME_SIMPLE !=
+ ldns_rdf2native_int8(ldns_rr_rdf(rrs->rr, 1)))
+ continue;
+
+ if (ZONEMD_HASH_SHA384
+ == ldns_rdf2native_int8(ldns_rr_rdf(rrs->rr,2))
+ && LDNS_SHA384_DIGEST_LENGTH
+ == ldns_rdf_size(ldns_rr_rdf(rrs->rr, 3))
+ && memcmp( simple_sha384
+ , ldns_rdf_data(ldns_rr_rdf(rrs->rr, 3))
+ , LDNS_SHA384_DIGEST_LENGTH) == 0)
+
+ valid_zonemds += 1;
+
+ if (ZONEMD_HASH_SHA512
+ == ldns_rdf2native_int8(ldns_rr_rdf(rrs->rr,2))
+ && LDNS_SHA512_DIGEST_LENGTH
+ == ldns_rdf_size(ldns_rr_rdf(rrs->rr, 3))
+ && memcmp( simple_sha512
+ , ldns_rdf_data(ldns_rr_rdf(rrs->rr, 3))
+ , LDNS_SHA512_DIGEST_LENGTH) == 0)
+
+ valid_zonemds += 1;
+ }
+ return valid_zonemds ? LDNS_STATUS_OK : LDNS_STATUS_NO_VALID_ZONEMD;
+}
+
+#ifdef HAVE_SSL
+static ldns_status
+rr_list2dnssec_rrs(ldns_rr_list *rr_list, ldns_dnssec_rrs **rrs,
+ ldns_rr_list *new_rrs)
+{
+ ldns_rr *rr = NULL;
+
+ if (!rr_list || !rrs)
+ return LDNS_STATUS_NULL;
+
+ if (ldns_rr_list_rr_count(rr_list) == 0)
+ return LDNS_STATUS_OK;
+
+ if (!*rrs) {
+ if (!(*rrs = ldns_dnssec_rrs_new()))
+ return LDNS_STATUS_MEM_ERR;
+ (*rrs)->rr = ldns_rr_list_pop_rr(rr_list);
+ if (new_rrs)
+ ldns_rr_list_push_rr(new_rrs, (*rrs)->rr);
+ }
+ while ((rr = ldns_rr_list_pop_rr(rr_list))) {
+ ldns_status st;
+
+ if ((st = ldns_dnssec_rrs_add_rr(*rrs, rr))) {
+ ldns_rr_list_push_rr(rr_list, rr);
+ return st;
+ } else if (new_rrs)
+ ldns_rr_list_push_rr(new_rrs, rr);
+ }
+ return LDNS_STATUS_OK;
+}
+
+
+ldns_status
+dnssec_zone_equip_zonemd(ldns_dnssec_zone *zone,
+ ldns_rr_list *new_rrs, ldns_key_list *key_list, int signflags)
+{
+ ldns_status st = LDNS_STATUS_OK;
+ zone_digester zd;
+ ldns_rr_list *zonemd_rr_list = NULL;
+ ldns_rr_list *zonemd_rrsigs = NULL;
+ ldns_dnssec_rrsets *soa_rrset;
+ ldns_rr *soa_rr = NULL;
+ ldns_dnssec_rrsets **rrset_ref;
+ ldns_dnssec_rrsets *zonemd_rrset;
+
+ zone_digester_init(&zd);
+ if (signflags & LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA384)
+ zone_digester_add(&zd, ZONEMD_SCHEME_SIMPLE
+ , ZONEMD_HASH_SHA384);
+
+ if (signflags & LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA512)
+ zone_digester_add(&zd, ZONEMD_SCHEME_SIMPLE
+ , ZONEMD_HASH_SHA512);
+
+ if ((st = ldns_digest_zone(zone, &zd)))
+ return st;
+
+ soa_rrset = ldns_dnssec_zone_find_rrset(
+ zone, zone->soa->name, LDNS_RR_TYPE_SOA);
+ if (!soa_rrset || !soa_rrset->rrs || !soa_rrset->rrs->rr)
+ return LDNS_STATUS_ZONEMD_INVALID_SOA;
+ soa_rr = soa_rrset->rrs->rr;
+
+ if (!(zonemd_rr_list = zone_digester_export(&zd, soa_rr, &st)))
+ return st;
+
+ /* - replace or add ZONEMD rrset */
+ rrset_ref = &zone->soa->rrsets; /* scan rrsets at apex */
+ while (*rrset_ref && (*rrset_ref)->type < LDNS_RR_TYPE_ZONEMD)
+ rrset_ref = &(*rrset_ref)->next;
+ if (*rrset_ref && (*rrset_ref)->type == LDNS_RR_TYPE_ZONEMD) {
+ /* reuse zonemd rrset */
+ zonemd_rrset = *rrset_ref;
+ ldns_dnssec_rrs_free(zonemd_rrset->rrs);
+ zonemd_rrset->rrs = NULL;
+ ldns_dnssec_rrs_free(zonemd_rrset->signatures);
+ zonemd_rrset->signatures = NULL;
+ } else {
+ /* insert zonemd rrset */
+ zonemd_rrset = ldns_dnssec_rrsets_new();
+ if (!zonemd_rrset) {
+ ldns_rr_list_deep_free(zonemd_rr_list);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ zonemd_rrset->type = LDNS_RR_TYPE_ZONEMD;
+ zonemd_rrset->next = *rrset_ref;
+ *rrset_ref = zonemd_rrset;
+ }
+ if ((zonemd_rrsigs = ldns_sign_public(zonemd_rr_list, key_list)))
+ st = rr_list2dnssec_rrs( zonemd_rrsigs
+ , &zonemd_rrset->signatures, new_rrs);
+ if (!st)
+ st = rr_list2dnssec_rrs( zonemd_rr_list
+ , &zonemd_rrset->rrs, new_rrs);
+ ldns_rr_list_deep_free(zonemd_rr_list);
+ ldns_rr_list_deep_free(zonemd_rrsigs);
+ return st;
+}
+
+#endif /* HAVE_SSL */
+
diff --git a/doc/API-header.xml b/doc/API-header.xml
index a4cd081bee66..eac42fc205ca 100644
--- a/doc/API-header.xml
+++ b/doc/API-header.xml
@@ -68,7 +68,7 @@ A small abstract will come here, TBD.
<section title="Introduction">
<t>
LibDNS (or lDNS) is modelled after the Net::DNS perl library. It has
-been shown that Net::DNS can be used vefficiently for
+been shown that Net::DNS can be used efficiently for
programming DNS aware applications. We want to bring the same
level of efficiency to C programmers.
</t>
@@ -97,9 +97,9 @@ Further more it is to be expected that lDNS will depend on OpenSSL for
its cryptography.
</t>
<t>
-As said, lDNS is modelled after Net::DNS, therefor its application API
+As said, lDNS is modelled after Net::DNS, therefore its application API
looks very much like the one used for Net::DNS. Some modification are made
-ofcourse, because not all functionality of Perl can be caught in C.
+of course, because not all functionality of Perl can be caught in C.
</t>
<t>
diff --git a/doc/API.xml b/doc/API.xml
index 554420d11c29..3d873d88f49a 100644
--- a/doc/API.xml
+++ b/doc/API.xml
@@ -68,7 +68,7 @@ A small abstract will come here, TBD.
<section title="Introduction">
<t>
LibDNS (or lDNS) is modelled after the Net::DNS perl library. It has
-been shown that Net::DNS can be used vefficiently for
+been shown that Net::DNS can be used efficiently for
programming DNS aware applications. We want to bring the same
level of efficiency to C programmers.
</t>
@@ -97,9 +97,9 @@ Further more it is to be expected that lDNS will depend on OpenSSL for
its cryptography.
</t>
<t>
-As said, lDNS is modelled after Net::DNS, therefor its application API
+As said, lDNS is modelled after Net::DNS, therefore its application API
looks very much like the one used for Net::DNS. Some modification are made
-ofcourse, because not all functionality of Perl can be caught in C.
+of course, because not all functionality of Perl can be caught in C.
</t>
<t>
@@ -336,7 +336,7 @@ Returns a pointer to a ldns_rr_list of representing the additional
section of the packet.
</t>
-<t hangText=" void ldsn_pkt_print(ldns_pkt *pkt):">
+<t hangText=" void ldns_pkt_print(ldns_pkt *pkt):">
Prints the packet data on the standard output in an ASCII format similar
to that used in DNS zone files. See RFC1035.
@@ -400,7 +400,7 @@ insert your long list here.
<section title="Examples">
<t>
A small example, which queries a nameserver on localhost
-to diplay the MX records for miek.nl.
+to display the MX records for miek.nl.
</t>
<t>
diff --git a/doc/CodingStyle b/doc/CodingStyle
index a326e5c3f999..693fdd31c72d 100644
--- a/doc/CodingStyle
+++ b/doc/CodingStyle
@@ -60,5 +60,5 @@ The libdns coding style guide
arcount = additional section count
ldns-<tools>
-* use exit(EXIT_FAILURE)/ exit(SUCCES)
+* use exit(EXIT_FAILURE)/ exit(EXIT_SUCCESS)
*
diff --git a/doc/dns-lib-implementations b/doc/dns-lib-implementations
index 18d01afb30f5..4951ffaaf787 100644
--- a/doc/dns-lib-implementations
+++ b/doc/dns-lib-implementations
@@ -20,7 +20,7 @@ From libfiredns(3):
libfiredns is a library for handling asynchronous DNS
requests. It provides a very simple interface for sending
-requests and parsing reponses, as well as low-timeout
+requests and parsing responses, as well as low-timeout
blocking functions. libfiredns functions have much lower
timeouts than the stock functions and tend to be faster
because they send requests to all configured system
diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl
index 66c846ae5679..79da2df022f0 100755
--- a/doc/doxyparse.pl
+++ b/doc/doxyparse.pl
@@ -37,8 +37,7 @@ my $BASE="doc/man";
my $MAN_SECTION = "3";
my $MAN_HEADER = ".ad l\n.TH ldns $MAN_SECTION \"30 May 2006\"\n";
my $MAN_MIDDLE = ".SH AUTHOR
-The ldns team at NLnet Labs. Which consists out of
-Jelte Jansen and Miek Gieben.
+The ldns team at NLnet Labs.
.SH REPORTING BUGS
Please report bugs to ldns-team\@nlnetlabs.nl or in
@@ -53,8 +52,7 @@ MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
";
my $MAN_FOOTER = ".SH REMARKS
-This manpage was automatically generated from the ldns source code by
-use of Doxygen and some perl.
+This manpage was automatically generated from the ldns source code.
";
getopts("em:",\%options);
diff --git a/doc/function_manpages b/doc/function_manpages
index db53ee5ad1ff..8f53f85b1e80 100644
--- a/doc/function_manpages
+++ b/doc/function_manpages
@@ -47,7 +47,7 @@ ldns_rdf, ldns_rdf_type | ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_dat
ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data | ldns_rdf - set rdf attributes
ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare | ldns_rdf - get rdf attributes
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 - ldns_rdf creation, destruction and printing
-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 | ldns_rdf - rdf numeric converion functions
+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 | ldns_rdf - rdf numeric conversion functions
ldns_rdf_address_reverse | ldns_rdf - reverse an address rdf
ldns_octet | ldns_rdf - removes escaped from the input
# why is this in rdata.h?
@@ -121,7 +121,7 @@ ldns_key | ldns_key_new, ldns_key_new_frm_algorithm,ldns_key_new_frm_fp,ldns_key
### MIEK TOT HIER TOT HIER
-# errr.h
+# error.h
ldns_get_errorstr_by_id, ldns_status - errors
### net.h
@@ -169,7 +169,7 @@ ldns_rr_label_count | ldns_rr, ldns_rr_list - return ownername label count
ldns_rr_descriptor, ldns_rr_descript, ldns_rr_descriptor_minimum, ldns_rr_descriptor_maximum, ldns_rr_descriptor_field_type | ldns_rr, ldns_rdf - rdata field descriptors
# packet.h
-ldns_pkt, ldns_pkt_section, ldns_pkt_type | 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_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, 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, 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 - request or anser packets types
+ldns_pkt, ldns_pkt_section, ldns_pkt_type | 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_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, 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, ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_unassigned, 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_unassigned, ldns_pkt_set_edns_data - request or answer packets types
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 - ldns_pkt creation, destruction and printing
# gets
diff --git a/doc/ldns_manpages b/doc/ldns_manpages
new file mode 100644
index 000000000000..47a24c8d2bb0
--- /dev/null
+++ b/doc/ldns_manpages
@@ -0,0 +1,470 @@
+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_pkt_verify
+ldns_rr_uncompressed_size
+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
+ldns_dname2canonical
+ldns_dnssec_data_chain
+ldns_dnssec_data_chain_struct
+ldns_dnssec_trust_tree
+ldns_rr_list_sort
+ldns_key_list_push_key
+ldns_key_list_pop_key
+ldns_rr_set_push_rr
+ldns_rr_set_pop_rr
+ldns_get_rr_list_hosts_frm_file
+ldns_get_rr_list_hosts_frm_fp
+ldns_get_rr_list_hosts_frm_fp_l
+ldns_send
+ldns_verify
+ldns_verify_rrsig
+ldns_verify_rrsig_keylist
+ldns_verify_rrsig_keylist_notime
+ldns_verify_notime
+ldns_update_pkt_new
+ldns_zone_push_rr
+ldns_zone_push_rr_list
+ldns_key2rr
+ldns_rr_list_cat
+ldns_rr_list_push_rr
+ldns_rr_list_pop_rr
+ldns_zone_rrs
+ldns_zone_soa
+ldns_rr_rdf
+ldns_rr_owner
+ldns_rr_rd_count
+ldns_rr_ttl
+ldns_rr_get_class
+ldns_fget_token
+ldns_fskipcs
+ldns_rdf_address_reverse
+ldns_rr_label_count
+ldns_zone_sort
+ldns_zone_glue_rr_list
+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
+ldns_rr2wire
+ldns_pkt2wire
+ldns_rdf2wire
+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
+ldns_dane_create_tlsa_rr
+ldns_dane_create_tlsa_owner
+ldns_dane_cert2rdf
+ldns_dane_select_certificate
+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
+ldns_update_set_zocount
+ldns_update_set_prcount
+ldns_update_set_upcount
+ldns_update_set_adcount
+ldns_rr2str
+ldns_pkt2str
+ldns_rdf2str
+ldns_rr_list2str
+ldns_key2str
+ldns_dname_left_chop
+ldns_dname_label_count
+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_zone_rr_count
+ldns_dname_cat_clone
+ldns_dname_cat
+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
+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
+ldns_b32_ntop_calculate_size
+ldns_b32_pton_calculate_size
+ldns_b64_ntop_calculate_size
+ldns_b64_pton_calculate_size
+ldns_rr_list_rr_count
+ldns_rr_list_set_rr_count
+ldns_get_rr_list_addr_by_name
+ldns_get_rr_list_name_by_addr
+ldns_calc_keytag
+ldns_calc_keytag_raw
+ldns_wire2rr
+ldns_wire2pkt
+ldns_wire2rdf
+ldns_wire2dname
+ldns_pkt
+ldns_pkt_section
+ldns_pkt_type
+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
+ldns_get_errorstr_by_id
+ldns_status
+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
+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_rr_list_clone
+ldns_rr2canonical
+ldns_octet
+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
+ldns_rr_push_rdf
+ldns_rr_pop_rdf
+ldns_algorithm
+ldns_rr_ns_nsdname
+ldns_key_list_new
+ldns_rr_list_new
+ldns_rr_list_free
+ldns_key_buf2dsa
+ldns_key_buf2rsa
+ldns_rdf
+ldns_rdf_type
+ldns_rr_descriptor
+ldns_rr_descript
+ldns_rr_descriptor_minimum
+ldns_rr_descriptor_maximum
+ldns_rr_descriptor_field_type
+ldns_duration_type
+ldns_duration_create
+ldns_duration_create_from_string
+ldns_duration_cleanup
+ldns_duration_compare
+ldns_duration2string
+ldns_duration2time
+ldns_getaddrinfo
+ldns_is_rrset
+ldns_dname_new
+ldns_dname_new_frm_str
+ldns_dname_new_frm_data
+ldns_pkt_new
+ldns_pkt_free
+ldns_pkt_print
+ldns_pkt_query_new
+ldns_pkt_query_new_frm_str
+ldns_pkt_reply_type
+ldns_key_rr2ds
+ldns_key
+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
+ldns_str2period
+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
+ldns_get_rr_class_by_name
+ldns_get_rr_type_by_name
+ldns_dname_is_subdomain
+ldns_dname_str_absolute
+ldns_dname_label
+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
+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
+ldns_sign_public
+ldns_tcp_send_query
+ldns_tcp_read_wire
+ldns_tcp_connect
+ldns_buffer2pkt_wire
+ldns_rr
+ldns_rr_class
+ldns_rr_type
+ldns_rr_compress
+ldns_rr_list
+ldns_pkt_tsig_verify
+ldns_pkt_tsig_sign
+ldns_update_pkt_tsig_add
+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
+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
+ldns_zone_sign
+ldns_zone_sign_nsec3
+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
+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
+ldns_bubblebabble
+ldns_create_nsec
+ldns_dname_compare
+ldns_dname_interval
+ldns_rr_compare
+ldns_rr_compare_ds
+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
+ldns_zone_set_rrs
+ldns_zone_set_soa
+ldns_dnssec_rrs_new
+ldns_dnssec_rrs_free
+ldns_dnssec_rrs_add_rr
+ldns_dnssec_rrs_print
+ldns_rr_mx_preference
+ldns_rr_mx_exchange
+ldns_rdf_size
+ldns_rdf_get_type
+ldns_rdf_data
+ldns_rdf_compare
+ldns_verify_rrsig_dsa
+ldns_verify_rrsig_rsasha1
+ldns_verify_rrsig_rsamd5
+ldns_dane_verify
+ldns_dane_verify_rr
+ldns_update_zocount
+ldns_update_prcount
+ldns_update_upcount
+ldns_update_adcount
+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_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
+ldns_key_free
+ldns_key_deep_free
+ldns_key_list_free
+ldns_dnssec_verify_denial
+ldns_dnssec_verify_denial_nsec3
+ldns_sign_public_dsa
+ldns_sign_public_rsamd5
+ldns_sign_public_rsasha1
+ldns_buffer_flip
+ldns_buffer_rewind
+ldns_buffer_position
+ldns_buffer_set_position
+ldns_buffer_skip
+ldns_init_random
+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_version
+ldns_dnssec_zone
+ldns_dnssec_name
+ldns_dnssec_rrs
+ldns_dnssec_rrsets
+ldns_rdf_set_size
+ldns_rdf_set_type
+ldns_rdf_set_data
+ldns_buffer_remaining_at
+ldns_buffer_remaining
+ldns_buffer_available_at
+ldns_buffer_available
+ldns_buffer_status
+ldns_buffer_status_ok
+ldns_bget_token
+ldns_bgetc
+ldns_bskipcs
+ldns_axfr_start
+ldns_axfr_next
+ldns_axfr_abort
+ldns_axfr_complete
+ldns_axfr_last_pkt
+ldns_key_print
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.
diff --git a/doc/tutorial1_mx.dox b/doc/tutorial1_mx.dox
index f442e7f501cf..443e5aa7b182 100644
--- a/doc/tutorial1_mx.dox
+++ b/doc/tutorial1_mx.dox
@@ -65,7 +65,7 @@
We tell the resolver to query for our domain, type MX, of class IN:
- \skipline ldns_resolver_query
+ \skipline ldns_resolver_search
\until )
The last argument contains flags to influence the type of query the
diff --git a/drill/ChangeLog.22-nov-2005 b/drill/ChangeLog.22-nov-2005
index 1ce8b0b7c076..6a18ed8da525 100644
--- a/drill/ChangeLog.22-nov-2005
+++ b/drill/ChangeLog.22-nov-2005
@@ -11,7 +11,7 @@
* Lint fixes for the code
* Bugzilla was setup for drill
* Bug #97 (drill); -S crash was fixed
- * Add -Q (quiet) flag was added. This supresses output from drill.
+ * Add -Q (quiet) flag was added. This suppresses output from drill.
1.0-pre2: 20 Jun 2005: drill-team
* Second prerelease
@@ -60,7 +60,7 @@
- CERT RR supported
- LOC RR support
* All non supported RRs are handled as unknown
- * If no namservers found in /etc/resolv.conf
+ * If no nameservers found in /etc/resolv.conf
default to 127.0.0.1
* Various bugs fixed
- Close sockets after using them
@@ -74,7 +74,7 @@
* Dig is no longer needed to build drill
0.7: Oct 21 2004: Miek
- * reworked interal code
+ * reworked internal code
* DNSSEC is working, except the secure resolving
* build updates
* more sane options parsing
diff --git a/drill/Makefile.in b/drill/Makefile.in
deleted file mode 100644
index ac555fa1e575..000000000000
--- a/drill/Makefile.in
+++ /dev/null
@@ -1,119 +0,0 @@
-# Standard installation pathnames
-# See the file LICENSE for the license
-SHELL = @SHELL@
-VERSION = @PACKAGE_VERSION@
-basesrcdir = $(shell basename `pwd`)
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-mandir = @mandir@
-includedir = @includedir@
-datarootdir = @datarootdir@
-
-CC = @CC@
-CFLAGS = -I. @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-INSTALL = $(srcdir)/install-sh -c
-INSTALL_PROGRAM = $(INSTALL)
-LDNSDIR = @LDNSDIR@
-LIBS_STC = @LIBS_STC@
-
-COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(srcdir)
-LINK = $(CC) $(CFLAGS) $(LDFLAGS)
-
-LINT = splint
-LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list
-#-Dglob64=glob -Dglobfree64=globfree
-# compat with openssl linux edition.
-LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned"
-# compat with NetBSD
-ifeq "$(shell uname)" "NetBSD"
-LINTFLAGS+="-D__RENAME(x)=" -D_NETINET_IN_H_
-endif
-# compat with OpenBSD
-LINTFLAGS+="-Dsigset_t=long"
-# FreeBSD8
-LINTFLAGS+="-D__uint16_t=uint16_t"
-LINTFLAGS+=-D__signed__=signed "-D__packed=" "-D__aligned(x)="
-# Ubuntu Linux 11.04
-LINTFLAGS+="-D__u16=struct __u16" "-D__u32=struct __u32" "-D__u64=struct __u64"
-
-OBJ=drill.o drill_util.o error.o root.o work.o chasetrace.o dnssec.o securetrace.o
-SRC=$(OBJ:.o=.c)
-
-HEADER=drill.h $(srcdir)/drill_util.h
-
-.PHONY: all clean realclean docclean doc release tags install all-static
-
-all: drill
-all-static: drill-stc
-
-tags:
- ctags *.[ch]
-
-drill: $(OBJ)
- $(LINK) -o drill $(OBJ) $(LIBS)
-
-drill-stc: $(OBJ)
- $(LINK) -o drill $(OBJ) $(LIBS_STC)
-
-## implicit rule
-%.o: $(srcdir)/%.c
- $(COMPILE) -c $<
-
-clean:
- rm -f ${OBJ}
- rm -f drill
- rm -f *core
- rm -f config.h.in~
- rm -f config.log
- rm -f config.guess
- rm -f config.status
-
-docclean:
- rm -rf doxydoc
-
-distclean: clean docclean
- rm -f config.h
-
-realclean: clean docclean
- rm -f tags
- rm -f config.log
- rm -f config.sub
- rm -f ltmain.sh
- rm -f config.status
- rm -rf autom4te.cache
- rm -f config.h
- rm -f config.h.in
- rm -f configure
- rm -f Makefile
- rm -f drill.1
- rm -f aclocal.m4
-
-doc:
- doxygen drill.doxygen
-
-install: all
- $(INSTALL) -d $(DESTDIR)$(bindir)
- $(INSTALL) drill $(DESTDIR)$(bindir)/drill
- $(INSTALL) -m 644 drill.1 $(DESTDIR)$(mandir)/man1/drill.1
-
-uninstall:
- @echo
- rm -f -- $(DESTDIR)$(bindir)/drill
- rm -f -- $(DESTDIR)$(mandir)/man1/drill.1
- rmdir -p $(DESTDIR)$(bindir)
- rmdir -p $(DESTDIR)$(mandir)/man1
- @echo
-
-lint:
- @for i in $(SRC) ; do \
- $(LINT) $(LINTFLAGS) $(CPPFLAGS) -I$(srcdir) $(srcdir)/$$i ; \
- if [ $$? -ne 0 ] ; then exit 1 ; fi ; \
- done
-
-confclean: clean
- rm -rf config.log config.status config.h Makefile drill.1
diff --git a/drill/chasetrace.c b/drill/chasetrace.c
index 1f8a2901ab26..3bd59563c5c0 100644
--- a/drill/chasetrace.c
+++ b/drill/chasetrace.c
@@ -171,7 +171,7 @@ do_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
}
/* transfer some properties of local_res to res,
- * because they were given on the commandline */
+ * because they were given on the command line */
ldns_resolver_set_ip6(res,
ldns_resolver_ip6(local_res));
ldns_resolver_set_port(res,
@@ -295,7 +295,7 @@ do_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
ldns_pkt_free(p);
p = NULL;
- status = ldns_resolver_send(&p, res, name, t, c, 0);
+ (void) ldns_resolver_send(&p, res, name, t, c, 0);
if (!p) {
goto cleanup;
}
diff --git a/drill/config.h.in b/drill/config.h.in
deleted file mode 100644
index 93abc62b58ab..000000000000
--- a/drill/config.h.in
+++ /dev/null
@@ -1,293 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define to 1 if you have the <assert.h> header file. */
-#undef HAVE_ASSERT_H
-
-/* Define to 1 if you have the <ctype.h> header file. */
-#undef HAVE_CTYPE_H
-
-/* Whether getaddrinfo is available */
-#undef HAVE_GETADDRINFO
-
-/* Define to 1 if you have the <getopt.h> header file. */
-#undef HAVE_GETOPT_H
-
-/* If you have HMAC_Update */
-#undef HAVE_HMAC_UPDATE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `isblank' function. */
-#undef HAVE_ISBLANK
-
-/* Define to 1 if you have the `ldns' library (-lldns). */
-#undef HAVE_LIBLDNS
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <netinet/if_ether.h> header file. */
-#undef HAVE_NETINET_IF_ETHER_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <netinet/in_systm.h> header file. */
-#undef HAVE_NETINET_IN_SYSTM_H
-
-/* Define to 1 if you have the <netinet/ip6.h> header file. */
-#undef HAVE_NETINET_IP6_H
-
-/* Define to 1 if you have the <netinet/ip.h> header file. */
-#undef HAVE_NETINET_IP_H
-
-/* Define to 1 if you have the <netinet/udp.h> header file. */
-#undef HAVE_NETINET_UDP_H
-
-/* Define to 1 if you have the <net/if.h> header file. */
-#undef HAVE_NET_IF_H
-
-/* Define to 1 if you have the <openssl/err.h> header file. */
-#undef HAVE_OPENSSL_ERR_H
-
-/* Define to 1 if you have the <openssl/rand.h> header file. */
-#undef HAVE_OPENSSL_RAND_H
-
-/* Define to 1 if you have the <openssl/ssl.h> header file. */
-#undef HAVE_OPENSSL_SSL_H
-
-/* Define if you have the SSL libraries installed. */
-#undef HAVE_SSL
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/mount.h> header file. */
-#undef HAVE_SYS_MOUNT_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#undef HAVE_WINSOCK2_H
-
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#undef HAVE_WS2TCPIP_H
-
-/* Default trust anchor file */
-#undef LDNS_TRUST_ANCHOR_FILE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Whether the windows socket API is used */
-#undef USE_WINSOCK
-
-/* the version of the windows API enabled */
-#undef WINVER
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
-/* in_addr_t */
-#undef in_addr_t
-
-/* in_port_t */
-#undef in_port_t
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to `short' if <sys/types.h> does not define. */
-#undef int16_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef int32_t
-
-/* Define to `long long' if <sys/types.h> does not define. */
-#undef int64_t
-
-/* Define to `char' if <sys/types.h> does not define. */
-#undef int8_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to 'int' if not defined */
-#undef socklen_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef ssize_t
-
-/* Define to `unsigned short' if <sys/types.h> does not define. */
-#undef uint16_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef uint32_t
-
-/* Define to `unsigned long long' if <sys/types.h> does not define. */
-#undef uint64_t
-
-/* Define to `unsigned char' if <sys/types.h> does not define. */
-#undef uint8_t
-
-
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <assert.h>
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <netinet/if_ether.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#define USE_WINSOCK 1
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifdef S_SPLINT_S
-#define FD_ZERO(a) /* a */
-#define FD_SET(a,b) /* a, b */
-#endif
-
diff --git a/drill/configure b/drill/configure
deleted file mode 100755
index 09d860196da8..000000000000
--- a/drill/configure
+++ /dev/null
@@ -1,6726 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ldns 1.7.0.
-#
-# Report bugs to <libdns@nlnetlabs.nl>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and
-$0: libdns@nlnetlabs.nl about your system, including any
-$0: error possibly output before this message. Then install
-$0: a modern shell, or manually run the script under such a
-$0: shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='ldns'
-PACKAGE_TARNAME='libdns'
-PACKAGE_VERSION='1.7.0'
-PACKAGE_STRING='ldns 1.7.0'
-PACKAGE_BUGREPORT='libdns@nlnetlabs.nl'
-PACKAGE_URL=''
-
-ac_unique_file="drill.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-LDNS_TRUST_ANCHOR_FILE
-LDNSDIR
-LIBS_STC
-RUNTIME_PATH
-HAVE_SSL
-libtool
-SET_MAKE
-EGREP
-GREP
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-runstatedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_rpath
-with_ssl
-with_ldns
-with_trust_anchor
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures ldns 1.7.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/libdns]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of ldns 1.7.0:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-rpath disable hardcoded rpath (default=enabled)
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-ssl=pathname enable SSL (will check /usr/local/ssl /usr/lib/ssl
- /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw
- /usr)
- --with-ldns=PATH specify prefix of path of ldns library to use
-
-
- --with-trust-anchor=KEYFILE
- Default location of the trust anchor file.
- [default=SYSCONFDIR/unbound/root.key]
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <libdns@nlnetlabs.nl>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-ldns configure 1.7.0
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------- ##
-## Report this to libdns@nlnetlabs.nl ##
-## ---------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by ldns $as_me 1.7.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# acx_nlnetlabs.m4 - common macros for configure checks
-# Copyright 2009, Wouter Wijngaards, NLnet Labs.
-# BSD licensed.
-#
-# Version 34
-# 2016-03-21 Check -ldl -pthread for libcrypto for ldns and openssl 1.1.0.
-# 2016-03-21 Use HMAC_Update instead of HMAC_CTX_Init (for openssl-1.1.0).
-# 2016-01-04 -D_DEFAULT_SOURCE defined with -D_BSD_SOURCE for Linux glibc 2.20
-# 2015-12-11 FLTO check for new OSX, clang.
-# 2015-11-18 spelling check fix.
-# 2015-11-05 ACX_SSL_CHECKS no longer adds -ldl needlessly.
-# 2015-08-28 ACX_CHECK_PIE and ACX_CHECK_RELRO_NOW added.
-# 2015-03-17 AHX_CONFIG_REALLOCARRAY added
-# 2013-09-19 FLTO help text improved.
-# 2013-07-18 Enable ACX_CHECK_COMPILER_FLAG to test for -Wstrict-prototypes
-# 2013-06-25 FLTO has --disable-flto option.
-# 2013-05-03 Update W32_SLEEP for newer mingw that links but not defines it.
-# 2013-03-22 Fix ACX_RSRC_VERSION for long version numbers.
-# 2012-02-09 Fix AHX_MEMCMP_BROKEN with undef in compat/memcmp.h.
-# 2012-01-20 Fix COMPILER_FLAGS_UNBOUND for gcc 4.6.2 assigned-not-used-warns.
-# 2011-12-05 Fix getaddrinfowithincludes on windows with fedora16 mingw32-gcc.
-# Fix ACX_MALLOC for redefined malloc error.
-# Fix GETADDRINFO_WITH_INCLUDES to add -lws2_32
-# 2011-11-10 Fix FLTO test to not drop a.out in current directory.
-# 2011-11-01 Fix FLTO test for llvm on Lion.
-# 2011-08-01 Fix nonblock test (broken at v13).
-# 2011-08-01 Fix autoconf 2.68 warnings
-# 2011-06-23 Add ACX_CHECK_FLTO to check -flto.
-# 2010-08-16 Fix FLAG_OMITTED for AS_TR_CPP changes in autoconf-2.66.
-# 2010-07-02 Add check for ss_family (for minix).
-# 2010-04-26 Fix to use CPPFLAGS for CHECK_COMPILER_FLAGS.
-# 2010-03-01 Fix RPATH using CONFIG_COMMANDS to run at the very end.
-# 2010-02-18 WITH_SSL outputs the LIBSSL_LDFLAGS, LIBS, CPPFLAGS separate, -ldl
-# 2010-02-01 added ACX_CHECK_MEMCMP_SIGNED, AHX_MEMCMP_BROKEN
-# 2010-01-20 added AHX_COONFIG_STRLCAT
-# 2009-07-14 U_CHAR detection improved for windows crosscompile.
-# added ACX_FUNC_MALLOC
-# fixup some #if to #ifdef
-# NONBLOCKING test for mingw crosscompile.
-# 2009-07-13 added ACX_WITH_SSL_OPTIONAL
-# 2009-07-03 fixup LDFLAGS for empty ssl dir.
-#
-# Automates some of the checking constructs. Aims at portability for POSIX.
-# Documentation for functions is below.
-#
-# the following macro's are provided in this file:
-# (see below for details on each macro).
-#
-# ACX_ESCAPE_BACKSLASH - escape backslashes in var for C-preproc.
-# ACX_RSRC_VERSION - create windows resource version number.
-# ACX_CHECK_COMPILER_FLAG - see if cc supports a flag.
-# ACX_CHECK_ERROR_FLAGS - see which flag is -werror (used below).
-# ACX_CHECK_COMPILER_FLAG_NEEDED - see if flags make the code compile cleanly.
-# ACX_DEPFLAG - find cc dependency flags.
-# ACX_DETERMINE_EXT_FLAGS_UNBOUND - find out which flags enable BSD and POSIX.
-# ACX_CHECK_FORMAT_ATTRIBUTE - find cc printf format syntax.
-# ACX_CHECK_UNUSED_ATTRIBUTE - find cc variable unused syntax.
-# ACX_CHECK_FLTO - see if cc supports -flto and use it if so.
-# ACX_LIBTOOL_C_ONLY - create libtool for C only, improved.
-# ACX_TYPE_U_CHAR - u_char type.
-# ACX_TYPE_RLIM_T - rlim_t type.
-# ACX_TYPE_SOCKLEN_T - socklen_t type.
-# ACX_TYPE_IN_ADDR_T - in_addr_t type.
-# ACX_TYPE_IN_PORT_T - in_port_t type.
-# ACX_ARG_RPATH - add --disable-rpath option.
-# ACX_WITH_SSL - add --with-ssl option, link -lcrypto.
-# ACX_WITH_SSL_OPTIONAL - add --with-ssl option, link -lcrypto,
-# where --without-ssl is also accepted
-# ACX_LIB_SSL - setup to link -lssl.
-# ACX_SYS_LARGEFILE - improved sys_largefile, fseeko, >2G files.
-# ACX_CHECK_GETADDRINFO_WITH_INCLUDES - find getaddrinfo, portably.
-# ACX_FUNC_DEPRECATED - see if func is deprecated.
-# ACX_CHECK_NONBLOCKING_BROKEN - see if nonblocking sockets really work.
-# ACX_MKDIR_ONE_ARG - determine mkdir(2) number of arguments.
-# ACX_FUNC_IOCTLSOCKET - find ioctlsocket, portably.
-# ACX_FUNC_MALLOC - check malloc, define replacement .
-# AHX_CONFIG_FORMAT_ATTRIBUTE - config.h text for format.
-# AHX_CONFIG_UNUSED_ATTRIBUTE - config.h text for unused.
-# AHX_CONFIG_FSEEKO - define fseeko, ftello fallback.
-# AHX_CONFIG_RAND_MAX - define RAND_MAX if needed.
-# AHX_CONFIG_MAXHOSTNAMELEN - define MAXHOSTNAMELEN if needed.
-# AHX_CONFIG_IPV6_MIN_MTU - define IPV6_MIN_MTU if needed.
-# AHX_CONFIG_SNPRINTF - snprintf compat prototype
-# AHX_CONFIG_INET_PTON - inet_pton compat prototype
-# AHX_CONFIG_INET_NTOP - inet_ntop compat prototype
-# AHX_CONFIG_INET_ATON - inet_aton compat prototype
-# AHX_CONFIG_MEMMOVE - memmove compat prototype
-# AHX_CONFIG_STRLCAT - strlcat compat prototype
-# AHX_CONFIG_STRLCPY - strlcpy compat prototype
-# AHX_CONFIG_GMTIME_R - gmtime_r compat prototype
-# AHX_CONFIG_W32_SLEEP - w32 compat for sleep
-# AHX_CONFIG_W32_USLEEP - w32 compat for usleep
-# AHX_CONFIG_W32_RANDOM - w32 compat for random
-# AHX_CONFIG_W32_SRANDOM - w32 compat for srandom
-# AHX_CONFIG_W32_FD_SET_T - w32 detection of FD_SET_T.
-# ACX_CFLAGS_STRIP - strip one flag from CFLAGS
-# ACX_STRIP_EXT_FLAGS - strip extension flags from CFLAGS
-# AHX_CONFIG_FLAG_OMITTED - define omitted flag
-# AHX_CONFIG_FLAG_EXT - define omitted extension flag
-# AHX_CONFIG_EXT_FLAGS - define the stripped extension flags
-# ACX_CHECK_MEMCMP_SIGNED - check if memcmp uses signed characters.
-# AHX_MEMCMP_BROKEN - replace memcmp func for CHECK_MEMCMP_SIGNED.
-# ACX_CHECK_SS_FAMILY - check for sockaddr_storage.ss_family
-# ACX_CHECK_PIE - add --enable-pie option and check if works
-# ACX_CHECK_RELRO_NOW - add --enable-relro-now option and check it
-#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-OURCPPFLAGS=''
-CPPFLAGS=${CPPFLAGS:-${OURCPPFLAGS}}
-OURCFLAGS='-g'
-CFLAGS=${CFLAGS:-${OURCFLAGS}}
-
-$as_echo "#define WINVER 0x0502" >>confdefs.h
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
-
-
- if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-
-# Checks for programs.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-for ac_prog in glibtool libtool15 libtool
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_libtool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$libtool"; then
- ac_cv_prog_libtool="$libtool" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_libtool="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-libtool=$ac_cv_prog_libtool
-if test -n "$libtool"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libtool" >&5
-$as_echo "$libtool" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$libtool" && break
-done
-test -n "$libtool" || libtool="../libtool"
-
-
-# add option to disable the evil rpath
-# Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
- enableval=$enable_rpath; enable_rpath=$enableval
-else
- enable_rpath=yes
-fi
-
-
-if test "x$enable_rpath" = xyes; then
- RPATH_VAL="-Wl,-rpath=\${libdir}"
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
-cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-C99FLAG="-std=c99"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
-$as_echo_n "checking whether $CC supports -xc99... " >&6; }
-cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-C99FLAG="-xc99"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-
-fi
-
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
-$as_echo_n "checking whether $CC supports -O2... " >&6; }
-cache=`echo O2 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-CFLAGS="$CFLAGS -O2"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-
-fi
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
-$as_echo_n "checking whether $CC supports -Werror... " >&6; }
-cache=`echo Werror | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Werror -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-ERRFLAG="-Werror"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-ERRFLAG="-errwarn"
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-$as_echo_n "checking whether $CC supports -Wall... " >&6; }
-cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-ERRFLAG="$ERRFLAG -Wall"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-ERRFLAG="$ERRFLAG -errfmt"
-fi
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo '
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test() {
- int a;
- char **opts = NULL;
- struct timeval tv;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- t = ctime_r(&time, buf);
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- return a;
-}
-' > conftest.c
-echo 'void f(){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo '#include <stdbool.h>' > conftest.c
-echo 'void f(){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-:
-
-fi
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
-if test "x$ac_cv_type_int8_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int8_t char
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
-if test "x$ac_cv_type_int16_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int16_t short
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
-if test "x$ac_cv_type_int32_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int32_t int
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
-if test "x$ac_cv_type_int64_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int64_t long long
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint8_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint8_t unsigned char
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint16_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint16_t unsigned short
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint32_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint32_t unsigned int
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint64_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint64_t unsigned long long
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define ssize_t int
-_ACEOF
-
-fi
-
-
-for ac_header in sys/types.h getopt.h stdlib.h stdio.h assert.h netinet/in.h ctype.h time.h arpa/inet.h sys/time.h sys/socket.h sys/select.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/if_ether.h netinet/ip6.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-$ac_includes_default
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-# MinGW32 tests
-for ac_header in winsock2.h ws2tcpip.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
-$ac_includes_default
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_type_socklen_t" = xyes; then :
-
-else
-
-$as_echo "#define socklen_t int" >>confdefs.h
-
-fi
-
-for ac_header in sys/param.h sys/mount.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-
-
- #if HAVE_SYS_PARAM_H
- # include <sys/param.h>
- #endif
-
-
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-"
-if test "x$ac_cv_type_in_addr_t" = xyes; then :
-
-else
-
-$as_echo "#define in_addr_t uint32_t" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "in_port_t" "ac_cv_type_in_port_t" "
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-"
-if test "x$ac_cv_type_in_port_t" = xyes; then :
-
-else
-
-$as_echo "#define in_port_t uint16_t" >>confdefs.h
-
-fi
-
-
-# check to see if libraries are needed for these functions.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
-$as_echo_n "checking for library containing socket... " >&6; }
-if ${ac_cv_search_socket+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' socket; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_socket=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_socket+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_socket+:} false; then :
-
-else
- ac_cv_search_socket=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-$as_echo "$ac_cv_search_socket" >&6; }
-ac_res=$ac_cv_search_socket
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
-$as_echo_n "checking for library containing inet_pton... " >&6; }
-if ${ac_cv_search_inet_pton+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_pton ();
-int
-main ()
-{
-return inet_pton ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' nsl; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_inet_pton=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_inet_pton+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_inet_pton+:} false; then :
-
-else
- ac_cv_search_inet_pton=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
-$as_echo "$ac_cv_search_inet_pton" >&6; }
-ac_res=$ac_cv_search_inet_pton
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-
-
-# Check whether --with-ssl was given.
-if test "${with_ssl+set}" = set; then :
- withval=$with_ssl;
-
-else
-
- withval="yes"
-
-fi
-
-
- withval=$withval
- if test x_$withval != x_no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
-$as_echo_n "checking for SSL... " >&6; }
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr"
- fi
- for dir in $withval; do
- ssldir="$dir"
- if test -f "$dir/include/openssl/ssl.h"; then
- found_ssl="yes"
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SSL /**/
-_ACEOF
-
- if test "$ssldir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$ssldir/include"
- LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir/include"
- fi
- break;
- fi
- done
- if test x_$found_ssl != x_yes; then
- as_fn_error $? "Cannot find the SSL libraries in $withval" "$LINENO" 5
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
-$as_echo "found in $ssldir" >&6; }
- HAVE_SSL=yes
- if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
- LDFLAGS="$LDFLAGS -L$ssldir/lib"
- LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$ssldir/lib" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib"
- fi
- fi
-
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HMAC_Update in -lcrypto" >&5
-$as_echo_n "checking for HMAC_Update in -lcrypto... " >&6; }
- LIBS="$LIBS -lcrypto"
- LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- # check if -lwsock32 or -lgdi32 are needed.
- BAKLIBS="$LIBS"
- BAKSSLLIBS="$LIBSSL_LIBS"
- LIBS="$LIBS -lgdi32"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
-$as_echo_n "checking if -lcrypto needs -lgdi32... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
-$as_echo_n "checking if -lcrypto needs -ldl... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl -pthread"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
-$as_echo_n "checking if -lcrypto needs -ldl -pthread... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
-
-
- fi
-for ac_header in openssl/ssl.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_ssl_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_SSL_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in openssl/err.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_err_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_ERR_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in openssl/rand.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_rand_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_RAND_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
-$as_echo_n "checking for getaddrinfo... " >&6; }
-ac_cv_func_getaddrinfo=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-char* getaddrinfo();
-char* (*f) () = getaddrinfo;
-#ifdef __cplusplus
-}
-#endif
-int main() {
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_func_getaddrinfo="yes"
-if test "$ac_cv_header_windows_h" = "yes"; then
-
-$as_echo "#define USE_WINSOCK 1" >>confdefs.h
-
- USE_WINSOCK="1"
- LIBS="$LIBS -lws2_32"
-fi
-
-else
- ORIGLIBS="$LIBS"
-LIBS="$LIBS -lws2_32"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-int
-main ()
-{
-
- (void)getaddrinfo(NULL, NULL, NULL, NULL);
-
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-ac_cv_func_getaddrinfo="yes"
-
-$as_echo "#define USE_WINSOCK 1" >>confdefs.h
-
-USE_WINSOCK="1"
-
-else
-
-ac_cv_func_getaddrinfo="no"
-LIBS="$ORIGLIBS"
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
-$as_echo "$ac_cv_func_getaddrinfo" >&6; }
-if test $ac_cv_func_getaddrinfo = yes; then
-
-$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h
-
-fi
-
-
-LIBS_STC="$LIBS"
-
-
-# check for ldns
-
-# Check whether --with-ldns was given.
-if test "${with_ldns+set}" = set; then :
- withval=$with_ldns;
- specialldnsdir="$withval"
- CPPFLAGS="$CPPFLAGS -I$withval/include"
- LDFLAGS="-L$withval -L$withval/lib $LDFLAGS"
- LDNSDIR="$withval"
- LIBS="-lldns $LIBS"
- LIBS_STC="$withval/lib/libldns.a $LIBS_STC"
-
-
-fi
-
-
-#AC_CHECK_HEADER(ldns/ldns.h,, [
-# AC_MSG_ERROR([Can't find ldns headers (make copy-headers in devel source.)])
-# ], [AC_INCLUDES_DEFAULT]
-#)
-
-for ac_func in isblank
-do :
- ac_fn_c_check_func "$LINENO" "isblank" "ac_cv_func_isblank"
-if test "x$ac_cv_func_isblank" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_ISBLANK 1
-_ACEOF
-
-fi
-done
-
-
-# check for ldns development source tree
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldns devel source" >&5
-$as_echo_n "checking for ldns devel source... " >&6; }
-ldns_dev_dir=..
-if test -f $ldns_dev_dir/ldns/util.h && \
- grep LDNS_VERSION $ldns_dev_dir/ldns/util.h >/dev/null; then
- ldns_version=`grep LDNS_VERSION $ldns_dev_dir/ldns/util.h | sed -e 's/^.*"\(.*\)".*$/\1/'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $ldns_dev_dir with $ldns_version" >&5
-$as_echo "using $ldns_dev_dir with $ldns_version" >&6; }
- CPPFLAGS="$CPPFLAGS -I$ldns_dev_dir/include"
- LDFLAGS="-L$ldns_dev_dir -L$ldns_dev_dir/lib $LDFLAGS"
- LIBS="-lldns $LIBS"
-
-$as_echo "#define HAVE_LIBLDNS 1" >>confdefs.h
-
- LDNSDIR="$ldns_dev_dir"
- LIBS_STC="$ldns_dev_dir/lib/libldns.a $LIBS_STC"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldns_rr_new in -lldns" >&5
-$as_echo_n "checking for ldns_rr_new in -lldns... " >&6; }
-if ${ac_cv_lib_ldns_ldns_rr_new+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lldns $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ldns_rr_new ();
-int
-main ()
-{
-return ldns_rr_new ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_ldns_ldns_rr_new=yes
-else
- ac_cv_lib_ldns_ldns_rr_new=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldns_ldns_rr_new" >&5
-$as_echo "$ac_cv_lib_ldns_ldns_rr_new" >&6; }
-if test "x$ac_cv_lib_ldns_ldns_rr_new" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBLDNS 1
-_ACEOF
-
- LIBS="-lldns $LIBS"
-
-else
-
- as_fn_error $? "Can't find ldns library" "$LINENO" 5
-
-fi
-
-fi
-
-
-
-
-# Check whether --with-trust-anchor was given.
-if test "${with_trust_anchor+set}" = set; then :
- withval=$with_trust_anchor;
- LDNS_TRUST_ANCHOR_FILE="$withval"
-
-else
-
- if test "x$LDNS_TRUST_ANCHOR_FILE" = "x"; then
- if test "x$sysconfdir" = 'x${prefix}/etc' ; then
- if test "x$prefix" = 'xNONE' ; then
- LDNS_TRUST_ANCHOR_FILE="/etc/unbound/root.key"
- else
- LDNS_TRUST_ANCHOR_FILE="${prefix}/etc/unbound/root.key"
- fi
- else
- LDNS_TRUST_ANCHOR_FILE="${sysconfdir}/unbound/root.key"
- fi
- fi
-
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define LDNS_TRUST_ANCHOR_FILE "$LDNS_TRUST_ANCHOR_FILE"
-_ACEOF
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Default trust anchor: $LDNS_TRUST_ANCHOR_FILE" >&5
-$as_echo "$as_me: Default trust anchor: $LDNS_TRUST_ANCHOR_FILE" >&6;}
-
-
-
-ac_config_files="$ac_config_files Makefile drill.1"
-
-ac_config_headers="$ac_config_headers config.h"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by ldns $as_me 1.7.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <libdns@nlnetlabs.nl>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-ldns config.status 1.7.0
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "drill.1") CONFIG_FILES="$CONFIG_FILES drill.1" ;;
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
- ;;
-
-
- esac
-
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/drill/configure.ac b/drill/configure.ac
deleted file mode 100644
index 7a726da2a647..000000000000
--- a/drill/configure.ac
+++ /dev/null
@@ -1,276 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.56)
-AC_INIT(ldns, 1.7.0, libdns@nlnetlabs.nl,libdns)
-AC_CONFIG_SRCDIR([drill.c])
-sinclude(../acx_nlnetlabs.m4)
-
-OURCPPFLAGS=''
-CPPFLAGS=${CPPFLAGS:-${OURCPPFLAGS}}
-OURCFLAGS='-g'
-CFLAGS=${CFLAGS:-${OURCFLAGS}}
-AC_DEFINE(WINVER, 0x0502, [the version of the windows API enabled])
-
-AC_AIX
-# Checks for programs.
-AC_PROG_CC
-AC_PROG_MAKE_SET
-AC_CHECK_PROGS(libtool, [glibtool libtool15 libtool], [../libtool])
-
-# add option to disable the evil rpath
-dnl Check whether to use rpath or not
-AC_ARG_ENABLE(rpath,
- [ --disable-rpath disable hardcoded rpath (default=enabled)],
- enable_rpath=$enableval, enable_rpath=yes)
-
-if test "x$enable_rpath" = xyes; then
- RPATH_VAL="-Wl,-rpath=\${libdir}"
-fi
-
-
-ACX_CHECK_COMPILER_FLAG(std=c99, [C99FLAG="-std=c99"])
-ACX_CHECK_COMPILER_FLAG(xc99, [C99FLAG="-xc99"])
-
-AC_TYPE_SIZE_T
-ACX_CHECK_COMPILER_FLAG(O2, [CFLAGS="$CFLAGS -O2"])
-
-ACX_CHECK_COMPILER_FLAG_NEEDED($C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600,
-[
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test() {
- int a;
- char **opts = NULL;
- struct timeval tv;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- t = ctime_r(&time, buf);
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- return a;
-}
-], [CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"])
-
-
-ACX_CHECK_COMPILER_FLAG_NEEDED($C99FLAG, [#include <stdbool.h>], [CFLAGS="$CFLAGS $C99FLAG"])
-
-AC_C_INLINE
-AC_CHECK_TYPE(int8_t, char)
-AC_CHECK_TYPE(int16_t, short)
-AC_CHECK_TYPE(int32_t, int)
-AC_CHECK_TYPE(int64_t, long long)
-AC_CHECK_TYPE(uint8_t, unsigned char)
-AC_CHECK_TYPE(uint16_t, unsigned short)
-AC_CHECK_TYPE(uint32_t, unsigned int)
-AC_CHECK_TYPE(uint64_t, unsigned long long)
-AC_CHECK_TYPE(ssize_t, int)
-
-AC_CHECK_HEADERS([sys/types.h getopt.h stdlib.h stdio.h assert.h netinet/in.h ctype.h time.h arpa/inet.h sys/time.h sys/socket.h sys/select.h],,, [AC_INCLUDES_DEFAULT])
-AC_CHECK_HEADERS([netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/if_ether.h netinet/ip6.h],,, [
-AC_INCLUDES_DEFAULT
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif])
-# MinGW32 tests
-AC_CHECK_HEADERS([winsock2.h ws2tcpip.h],,, [AC_INCLUDES_DEFAULT])
-
-ACX_TYPE_SOCKLEN_T
-AC_CHECK_HEADERS([sys/param.h sys/mount.h],,,
-[AC_INCLUDES_DEFAULT]
-[
- [
- #if HAVE_SYS_PARAM_H
- # include <sys/param.h>
- #endif
- ]
-])
-AC_CHECK_TYPE(in_addr_t, [], [AC_DEFINE([in_addr_t], [uint32_t], [in_addr_t])], [
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif])
-AC_CHECK_TYPE(in_port_t, [], [AC_DEFINE([in_port_t], [uint16_t], [in_port_t])], [
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif])
-
-# check to see if libraries are needed for these functions.
-AC_SEARCH_LIBS(socket, socket)
-AC_SEARCH_LIBS([inet_pton], [nsl])
-
-ACX_WITH_SSL_OPTIONAL
-
-ACX_CHECK_GETADDRINFO_WITH_INCLUDES
-
-LIBS_STC="$LIBS"
-AC_SUBST(LIBS_STC)
-
-# check for ldns
-AC_ARG_WITH(ldns,
- AC_HELP_STRING([--with-ldns=PATH specify prefix of path of ldns library to use])
- ,
- [
- specialldnsdir="$withval"
- CPPFLAGS="$CPPFLAGS -I$withval/include"
- LDFLAGS="-L$withval -L$withval/lib $LDFLAGS"
- LDNSDIR="$withval"
- LIBS="-lldns $LIBS"
- LIBS_STC="$withval/lib/libldns.a $LIBS_STC"
- ]
-)
-
-#AC_CHECK_HEADER(ldns/ldns.h,, [
-# AC_MSG_ERROR([Can't find ldns headers (make copy-headers in devel source.)])
-# ], [AC_INCLUDES_DEFAULT]
-#)
-
-AC_CHECK_FUNCS(isblank)
-
-# check for ldns development source tree
-AC_MSG_CHECKING([for ldns devel source])
-ldns_dev_dir=..
-if test -f $ldns_dev_dir/ldns/util.h && \
- grep LDNS_VERSION $ldns_dev_dir/ldns/util.h >/dev/null; then
- ldns_version=`grep LDNS_VERSION $ldns_dev_dir/ldns/util.h | sed -e 's/^.*"\(.*\)".*$/\1/'`
- AC_MSG_RESULT([using $ldns_dev_dir with $ldns_version])
- CPPFLAGS="$CPPFLAGS -I$ldns_dev_dir/include"
- LDFLAGS="-L$ldns_dev_dir -L$ldns_dev_dir/lib $LDFLAGS"
- LIBS="-lldns $LIBS"
- AC_DEFINE(HAVE_LIBLDNS, 1, [If the ldns library is available.])
- LDNSDIR="$ldns_dev_dir"
- LIBS_STC="$ldns_dev_dir/lib/libldns.a $LIBS_STC"
-else
- AC_MSG_RESULT([no])
- AC_CHECK_LIB(ldns, ldns_rr_new, , [
- AC_MSG_ERROR([Can't find ldns library])dnl '
- ]
- )
-fi
-
-AC_SUBST(LDNSDIR)
-
-AC_ARG_WITH(trust-anchor, AC_HELP_STRING([--with-trust-anchor=KEYFILE],
-[Default location of the trust anchor file. [default=SYSCONFDIR/unbound/root.key]]), [
- LDNS_TRUST_ANCHOR_FILE="$withval"
-],[
- if test "x$LDNS_TRUST_ANCHOR_FILE" = "x"; then
- if test "x$sysconfdir" = 'x${prefix}/etc' ; then
- if test "x$prefix" = 'xNONE' ; then
- LDNS_TRUST_ANCHOR_FILE="/etc/unbound/root.key"
- else
- LDNS_TRUST_ANCHOR_FILE="${prefix}/etc/unbound/root.key"
- fi
- else
- LDNS_TRUST_ANCHOR_FILE="${sysconfdir}/unbound/root.key"
- fi
- fi
-])
-AC_DEFINE_UNQUOTED([LDNS_TRUST_ANCHOR_FILE], ["$LDNS_TRUST_ANCHOR_FILE"], [Default trust anchor file])
-AC_SUBST(LDNS_TRUST_ANCHOR_FILE)
-AC_MSG_NOTICE([Default trust anchor: $LDNS_TRUST_ANCHOR_FILE])
-
-AH_BOTTOM([
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <assert.h>
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <netinet/if_ether.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#define USE_WINSOCK 1
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifdef S_SPLINT_S
-#define FD_ZERO(a) /* a */
-#define FD_SET(a,b) /* a, b */
-#endif
-])
-
-AC_CONFIG_FILES([Makefile drill.1])
-AC_CONFIG_HEADER([config.h])
-AC_OUTPUT
diff --git a/drill/dnssec.c b/drill/dnssec.c
index b8074be03cc5..687cfe55a572 100644
--- a/drill/dnssec.c
+++ b/drill/dnssec.c
@@ -180,7 +180,20 @@ ldns_verify_denial(ldns_pkt *pkt, ldns_rdf *name, ldns_rr_type type, ldns_rr_lis
ldns_rr_list *nsecs;
ldns_status result;
-
+ const ldns_rr_descriptor *descriptor;
+
+ if (!pkt) {
+ descriptor = ldns_rr_descript(type);
+
+ printf("NETWORk ERROR! Cannot verify denial for: ");
+ ldns_rdf_print(stdout, name);
+ printf(" type ");
+ if (descriptor && descriptor->_name)
+ printf("%s", descriptor->_name);
+ else
+ printf("TYPE%u", type);
+ return LDNS_STATUS_CRYPTO_NO_RRSIG;
+ }
if (verbosity >= 5) {
printf("VERIFY DENIAL FROM:\n");
ldns_pkt_print(stdout, pkt);
@@ -453,6 +466,7 @@ ldns_nsec3_closest_encloser(ldns_rdf *qname, ldns_rr_type qtype, ldns_rr_list *n
}
if (ldns_dname_cat(hashed_sname, zone_name) != LDNS_STATUS_OK){
+ ldns_rdf_deep_free(hashed_sname);
goto done;
}
diff --git a/drill/drill.1.in b/drill/drill.1.in
index c3da109fb060..f249424394b6 100644
--- a/drill/drill.1.in
+++ b/drill/drill.1.in
@@ -19,8 +19,8 @@ drill \- get (debug) information out of DNS(SEC)
]
.SH DESCRIPTION
-\fBdrill\fR is a tool to designed to get all sorts of information out of the
-DNS. It is specificly designed to be used with DNSSEC.
+\fBdrill\fR is a tool designed to get all sorts of information out of the
+DNS. It is specifically designed to be used with DNSSEC.
.PP
The name \fBdrill\fR is a pun on \fBdig\fR. With \fBdrill\fR you should be able
get even more information than with \fBdig\fR.
@@ -222,6 +222,15 @@ specify named base64 tsig key, and optional an algorithm (defaults to hmac-md5.s
\fB\-z \fR
don't randomize the nameserver list before sending queries.
+
+.SS EDNS QUERY OPTIONS
+
+.TP
+\fB\+nsid \fR
+When set, this EDNS option includes an EDNS name server ID request in the query.
+
+
+
.SH "EXIT STATUS"
The exit status is 0 if the looked up answer is secure and trusted,
or insecure.
diff --git a/drill/drill.c b/drill/drill.c
index 3a9482b38633..611c81f3a8e3 100644
--- a/drill/drill.c
+++ b/drill/drill.c
@@ -59,7 +59,7 @@ usage(FILE *stream, const char *progname)
fprintf(stream, "\t-6\t\tstay on ip6\n");
fprintf(stream, "\t-a\t\tfallback to EDNS0 and TCP if the answer is truncated\n");
fprintf(stream, "\t-b <bufsize>\tuse <bufsize> as the buffer size (defaults to 512 b)\n");
- fprintf(stream, "\t-c <file>\tuse file for rescursive nameserver configuration"
+ fprintf(stream, "\t-c <file>\tuse file for recursive nameserver configuration"
"\n\t\t\t(/etc/resolv.conf)\n");
fprintf(stream, "\t-k <file>\tspecify a file that contains a trusted DNSSEC key [**]\n");
fprintf(stream, "\t\t\tUsed to verify any signatures in the current answer.\n");
@@ -111,7 +111,7 @@ main(int argc, char *argv[])
ldns_resolver *cmdline_res = NULL; /* only used to resolv @name names */
ldns_rr_list *cmdline_rr_list = NULL;
ldns_rdf *cmdline_dname = NULL;
- ldns_rdf *qname, *qname_tmp;
+ ldns_rdf *qname;
ldns_pkt *pkt;
ldns_pkt *qpkt;
char *serv;
@@ -156,6 +156,7 @@ main(int argc, char *argv[])
bool qds;
bool qusevc;
bool qrandom;
+ bool drill_reverse = false;
char *resolv_conf_file = NULL;
@@ -165,11 +166,15 @@ main(int argc, char *argv[])
uint8_t s6addr[16];
char ip6_arpa_str[74];
+ uint8_t s4addr[4];
+ char in_addr_arpa_str[40];
#ifdef USE_WINSOCK
int r;
WSADATA wsa_data;
#endif
+ ldns_output_format_storage fmt_storage;
+ ldns_output_format* fmt = ldns_output_format_init(&fmt_storage);
int_type = -1; serv = NULL; type = 0;
int_clas = -1; name = NULL; clas = 0;
@@ -198,6 +203,7 @@ main(int argc, char *argv[])
qusevc = false;
qrandom = true;
key_verified = NULL;
+ ldns_edns_option_list* edns_list = NULL;
ldns_init_random(NULL, 0);
@@ -244,6 +250,7 @@ main(int argc, char *argv[])
verbosity = atoi(optarg);
break;
case 'Q':
+ fmt->flags |= LDNS_FMT_SHORT;
verbosity = -1;
break;
case 'f':
@@ -357,12 +364,16 @@ main(int argc, char *argv[])
result = EXIT_SUCCESS;
goto exit;
case 'x':
- PURPOSE = DRILL_REVERSE;
+ drill_reverse = true;
break;
case 'y':
#ifdef HAVE_SSL
if (strchr(optarg, ':')) {
tsig_separator = (size_t) (strchr(optarg, ':') - optarg);
+ if (tsig_algorithm) {
+ free(tsig_algorithm);
+ tsig_algorithm = NULL;
+ }
if (strchr(optarg + tsig_separator + 1, ':')) {
tsig_separator2 = (size_t) (strchr(optarg + tsig_separator + 1, ':') - optarg);
tsig_algorithm = xmalloc(strlen(optarg) - tsig_separator2);
@@ -447,6 +458,31 @@ main(int argc, char *argv[])
serv = argv[i] + 1;
continue;
}
+ /* if ^+ then it's an EDNS option */
+ if (argv[i][0] == '+') {
+ if (!strcmp(argv[i]+1, "nsid")) {
+ ldns_edns_option *edns;
+ edns_list = ldns_edns_option_list_new();
+
+ /* create NSID EDNS*/
+ edns = ldns_edns_new_from_data(LDNS_EDNS_NSID, 0, NULL);
+
+ if (edns_list == NULL || edns == NULL) {
+ error("EDNS option could not be allocated");
+ break;
+ }
+
+ if (!(ldns_edns_option_list_push(edns_list, edns))) {
+ error("EDNS option NSID could not be attached");
+ break;
+ }
+ continue;
+ }
+ else {
+ error("Unsupported argument after '+'");
+ break;
+ }
+ }
/* if has a dot, it's a name */
if (strchr(argv[i], '.')) {
name = argv[i];
@@ -487,12 +523,66 @@ main(int argc, char *argv[])
clas = LDNS_RR_CLASS_IN;
}
if (int_type == -1) {
- if (PURPOSE != DRILL_REVERSE) {
+ if (!drill_reverse) {
type = LDNS_RR_TYPE_A;
} else {
type = LDNS_RR_TYPE_PTR;
}
}
+ if (!drill_reverse)
+ ; /* pass */
+ else if (strchr(name, ':')) { /* ipv4 or ipv6 addr? */
+ if (!inet_pton(AF_INET6, name, &s6addr)) {
+ error("Syntax error: cannot parse IPv6 address\n");
+ }
+ (void) snprintf(ip6_arpa_str, sizeof(ip6_arpa_str),
+ "%x.%x.%x.%x.%x.%x.%x.%x."
+ "%x.%x.%x.%x.%x.%x.%x.%x."
+ "%x.%x.%x.%x.%x.%x.%x.%x."
+ "%x.%x.%x.%x.%x.%x.%x.%x.ip6.arpa.",
+ (unsigned int)(s6addr[15] & 0x0F),
+ (unsigned int)(s6addr[15] >> 4),
+ (unsigned int)(s6addr[14] & 0x0F),
+ (unsigned int)(s6addr[14] >> 4),
+ (unsigned int)(s6addr[13] & 0x0F),
+ (unsigned int)(s6addr[13] >> 4),
+ (unsigned int)(s6addr[12] & 0x0F),
+ (unsigned int)(s6addr[12] >> 4),
+ (unsigned int)(s6addr[11] & 0x0F),
+ (unsigned int)(s6addr[11] >> 4),
+ (unsigned int)(s6addr[10] & 0x0F),
+ (unsigned int)(s6addr[10] >> 4),
+ (unsigned int)(s6addr[9] & 0x0F),
+ (unsigned int)(s6addr[9] >> 4),
+ (unsigned int)(s6addr[8] & 0x0F),
+ (unsigned int)(s6addr[8] >> 4),
+ (unsigned int)(s6addr[7] & 0x0F),
+ (unsigned int)(s6addr[7] >> 4),
+ (unsigned int)(s6addr[6] & 0x0F),
+ (unsigned int)(s6addr[6] >> 4),
+ (unsigned int)(s6addr[5] & 0x0F),
+ (unsigned int)(s6addr[5] >> 4),
+ (unsigned int)(s6addr[4] & 0x0F),
+ (unsigned int)(s6addr[4] >> 4),
+ (unsigned int)(s6addr[3] & 0x0F),
+ (unsigned int)(s6addr[3] >> 4),
+ (unsigned int)(s6addr[2] & 0x0F),
+ (unsigned int)(s6addr[2] >> 4),
+ (unsigned int)(s6addr[1] & 0x0F),
+ (unsigned int)(s6addr[1] >> 4),
+ (unsigned int)(s6addr[0] & 0x0F),
+ (unsigned int)(s6addr[0] >> 4));
+ name = ip6_arpa_str;
+
+ } else if (!inet_pton(AF_INET, name, &s4addr)) {
+ error("Syntax error: cannot parse IPv4 address\n");
+
+ } else {
+ (void) snprintf(in_addr_arpa_str, sizeof(in_addr_arpa_str),
+ "%d.%d.%d.%d.in-addr.arpa.", (int)s4addr[3],
+ (int)s4addr[2], (int)s4addr[1], (int)s4addr[0]);
+ name = in_addr_arpa_str;
+ }
if (src) {
src_rdf = ldns_rdf_new_addr_frm_str(src);
@@ -732,7 +822,7 @@ main(int argc, char *argv[])
}
status = ldns_resolver_prepare_query_pkt(&qpkt, res, qname, type, clas, qflags);
if(status != LDNS_STATUS_OK) {
- error("%s", "making query: %s",
+ error("%s", "making query: %s",
ldns_get_errorstr_by_id(status));
}
dump_hex(qpkt, query_file);
@@ -740,87 +830,6 @@ main(int argc, char *argv[])
break;
case DRILL_NSEC:
break;
- case DRILL_REVERSE:
- /* ipv4 or ipv6 addr? */
- if (strchr(name, ':')) {
- if (!inet_pton(AF_INET6, name, &s6addr)) {
- error("Syntax error: cannot parse IPv6 address\n");
- }
- (void) snprintf(ip6_arpa_str, sizeof(ip6_arpa_str),
- "%x.%x.%x.%x.%x.%x.%x.%x."
- "%x.%x.%x.%x.%x.%x.%x.%x."
- "%x.%x.%x.%x.%x.%x.%x.%x."
- "%x.%x.%x.%x.%x.%x.%x.%x.ip6.arpa.",
- (unsigned int)(s6addr[15] & 0x0F),
- (unsigned int)(s6addr[15] >> 4),
- (unsigned int)(s6addr[14] & 0x0F),
- (unsigned int)(s6addr[14] >> 4),
- (unsigned int)(s6addr[13] & 0x0F),
- (unsigned int)(s6addr[13] >> 4),
- (unsigned int)(s6addr[12] & 0x0F),
- (unsigned int)(s6addr[12] >> 4),
- (unsigned int)(s6addr[11] & 0x0F),
- (unsigned int)(s6addr[11] >> 4),
- (unsigned int)(s6addr[10] & 0x0F),
- (unsigned int)(s6addr[10] >> 4),
- (unsigned int)(s6addr[9] & 0x0F),
- (unsigned int)(s6addr[9] >> 4),
- (unsigned int)(s6addr[8] & 0x0F),
- (unsigned int)(s6addr[8] >> 4),
- (unsigned int)(s6addr[7] & 0x0F),
- (unsigned int)(s6addr[7] >> 4),
- (unsigned int)(s6addr[6] & 0x0F),
- (unsigned int)(s6addr[6] >> 4),
- (unsigned int)(s6addr[5] & 0x0F),
- (unsigned int)(s6addr[5] >> 4),
- (unsigned int)(s6addr[4] & 0x0F),
- (unsigned int)(s6addr[4] >> 4),
- (unsigned int)(s6addr[3] & 0x0F),
- (unsigned int)(s6addr[3] >> 4),
- (unsigned int)(s6addr[2] & 0x0F),
- (unsigned int)(s6addr[2] >> 4),
- (unsigned int)(s6addr[1] & 0x0F),
- (unsigned int)(s6addr[1] >> 4),
- (unsigned int)(s6addr[0] & 0x0F),
- (unsigned int)(s6addr[0] >> 4));
-
- qname = ldns_dname_new_frm_str(ip6_arpa_str);
- } else {
- qname = ldns_dname_new_frm_str(name);
- qname_tmp = ldns_dname_reverse(qname);
- ldns_rdf_deep_free(qname);
- qname = qname_tmp;
- qname_tmp = ldns_dname_new_frm_str("in-addr.arpa.");
- status = ldns_dname_cat(qname, qname_tmp);
- if (status != LDNS_STATUS_OK) {
- error("%s", "could not create reverse address for ip4: %s\n", ldns_get_errorstr_by_id(status));
- }
- ldns_rdf_deep_free(qname_tmp);
- }
- if (!qname) {
- error("%s", "-x implies an ip address");
- }
-
- /* create a packet and set the RD flag on it */
- pkt = NULL;
- status = ldns_resolver_query_status(
- &pkt, res, qname, type, clas, qflags);
- if (status != LDNS_STATUS_OK) {
- error("error sending query: %s",
- ldns_get_errorstr_by_id(status));
- }
- if (!pkt) {
- if (status == LDNS_STATUS_OK) {
- error("%s", "pkt sending");
- }
- result = EXIT_FAILURE;
- } else {
- if (verbosity != -1) {
- ldns_pkt_print(stdout, pkt);
- }
- ldns_pkt_free(pkt);
- }
- break;
case DRILL_QUERY:
default:
if (query_file) {
@@ -884,9 +893,22 @@ main(int argc, char *argv[])
} else {
/* create a packet and set the RD flag on it */
pkt = NULL;
- status = ldns_resolver_query_status(
- &pkt, res, qname,
- type, clas, qflags);
+
+ status = ldns_resolver_prepare_query_pkt(&qpkt,
+ res, qname, type, clas, qflags);
+ if(status != LDNS_STATUS_OK) {
+ error("%s", "making query: %s",
+ ldns_get_errorstr_by_id(status));
+ }
+
+ if (edns_list) {
+ /* attach the structed EDNS options */
+ ldns_pkt_set_edns_option_list(qpkt, edns_list);
+ }
+
+ status = ldns_resolver_send_pkt(&pkt, res, qpkt);
+ ldns_pkt_free(qpkt);
+
if (status != LDNS_STATUS_OK) {
error("error sending query: %s"
, ldns_get_errorstr_by_id(
@@ -895,12 +917,13 @@ main(int argc, char *argv[])
}
}
- if (!pkt) {
+ /* now handling the response message/packet */
+ if (!pkt) {
mesg("No packet received");
result = EXIT_FAILURE;
} else {
+ ldns_pkt_print_fmt(stdout, fmt, pkt);
if (verbosity != -1) {
- ldns_pkt_print(stdout, pkt);
if (ldns_pkt_tc(pkt)) {
fprintf(stdout,
"\n;; WARNING: The answer packet was truncated; you might want to\n");
@@ -1014,9 +1037,17 @@ main(int argc, char *argv[])
xfree(tsig_algorithm);
#ifdef HAVE_SSL
- CRYPTO_cleanup_all_ex_data();
- ERR_free_strings();
- EVP_cleanup();
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(HAVE_LIBRESSL)
+#ifdef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
+ CRYPTO_cleanup_all_ex_data ();
+#endif
+#ifdef HAVE_ERR_FREE_STRINGS
+ ERR_free_strings ();
+#endif
+#ifdef HAVE_EVP_CLEANUP
+ EVP_cleanup ();
+#endif
+#endif
#endif
#ifdef USE_WINSOCK
WSACleanup();
diff --git a/drill/drill.h b/drill/drill.h
index cbccd75ec5c5..4397fd06d954 100644
--- a/drill/drill.h
+++ b/drill/drill.h
@@ -21,7 +21,6 @@
#define DRILL_AFROMFILE 3
#define DRILL_QTOFILE 4
#define DRILL_NSEC 5
-#define DRILL_REVERSE 6
#define DRILL_SECTRACE 7
#define DRILL_ON(VAR, BIT) \
diff --git a/drill/error.c b/drill/error.c
index 591687d0db50..137021f3866c 100644
--- a/drill/error.c
+++ b/drill/error.c
@@ -2,7 +2,7 @@
* error.c
*
* error reporting routines
- * basicly wrappers around printf
+ * basically wrappers around printf
*
* (c) 2005 NLnet Labs
*
diff --git a/drill/securetrace.c b/drill/securetrace.c
index 863875e138cd..90014b4e3007 100644
--- a/drill/securetrace.c
+++ b/drill/securetrace.c
@@ -137,7 +137,7 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
ldns_rr_list *correct_key_list;
ldns_rr_list *trusted_ds_rrs;
bool new_keys_trusted = false;
- ldns_rr_list *current_correct_keys;
+ ldns_rr_list *current_correct_keys = NULL;
ldns_rr_list *dataset;
ldns_rr_list *nsec_rrs = NULL;
@@ -241,7 +241,7 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
goto done;
}
}
- labels = LDNS_XMALLOC(ldns_rdf*, labels_count + 2);
+ labels = LDNS_CALLOC(ldns_rdf*, labels_count + 2);
if (!labels) {
goto done;
}
@@ -256,6 +256,13 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
*/
for(i = (ssize_t)labels_count + 1; i > 0; i--) {
status = ldns_resolver_send(&local_p, res, labels[i], LDNS_RR_TYPE_NS, c, 0);
+ if (status != LDNS_STATUS_OK) {
+ fprintf(stderr, "Error sending query: %s\n", ldns_get_errorstr_by_id(status));
+ result = status;
+ goto done;
+ }
+
+ /* TODO: handle status */
if (verbosity >= 5) {
ldns_pkt_print(stdout, local_p);
@@ -497,12 +504,43 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
p = get_dnssec_pkt(res, labels[i-1], LDNS_RR_TYPE_DS);
(void) get_ds(p, labels[i-1], &ds_list, &ds_sig_list);
if (!ds_list) {
- ldns_pkt_free(p);
- if (ds_sig_list) {
+ ldns_rr_list_deep_free(ds_sig_list);
+ (void) get_dnssec_rr( p, labels[i-1]
+ , LDNS_RR_TYPE_CNAME
+ , &ds_list, &ds_sig_list);
+ if (ds_list) {
+ st = ldns_verify( ds_list, ds_sig_list
+ , correct_key_list
+ , current_correct_keys);
+
+ if (st == LDNS_STATUS_OK) {
+ printf(";; No DS record found "
+ "for ");
+ ldns_rdf_print(stdout,
+ labels[i-1]);
+ printf(", but valid CNAME");
+ } else {
+ printf(BOGUS " Unable to verify "
+ "denial of existence for ");
+ ldns_rdf_print(stdout,
+ labels[i-1]);
+ printf(", because of BOGUS CNAME");
+ }
+ printf("\n");
ldns_rr_list_deep_free(ds_sig_list);
+ ldns_pkt_free(p);
+ ldns_rr_list_deep_free(ds_list);
+ ds_list = NULL;
+ ds_sig_list = NULL;
+ p = NULL;
+ } else {
+ ldns_rr_list_deep_free(ds_sig_list);
+ ldns_pkt_free(p);
+ p = get_dnssec_pkt(res, name,
+ LDNS_RR_TYPE_DNSKEY);
+ (void) get_ds(p, NULL
+ , &ds_list, &ds_sig_list);
}
- p = get_dnssec_pkt(res, name, LDNS_RR_TYPE_DNSKEY);
- (void) get_ds(p, NULL, &ds_list, &ds_sig_list);
}
if (ds_sig_list) {
if (ds_list) {
@@ -606,7 +644,7 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
printf(";; No DS for ");
ldns_rdf_print(stdout, labels[i - 1]);
} else {
- printf("[B] Unable to verify denial of existence for ");
+ printf(BOGUS " Unable to verify denial of existence for ");
ldns_rdf_print(stdout, labels[i - 1]);
printf(" DS: %s\n", ldns_get_errorstr_by_id(status));
}
@@ -710,7 +748,7 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
}
printf("\n");
} else {
- printf("[B] Unable to verify denial of existence for ");
+ printf(BOGUS " Unable to verify denial of existence for ");
ldns_rdf_print(stdout, name);
printf(" type ");
if (descriptor && descriptor->_name) {
@@ -736,7 +774,7 @@ do_secure_trace(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
ldns_rr_list_deep_free(ds_sig_list);
ds_sig_list = NULL;
}
- printf(";;" SELF " self sig OK; " BOGUS " bogus; " TRUST " trusted\n");
+ printf(";;" SELF " self sig OK; " BOGUS " bogus; " TRUST " trusted; " UNSIGNED " unsigned\n");
/* verbose mode?
printf("Trusted keys:\n");
ldns_rr_list_print(stdout, trusted_keys);
diff --git a/duration.c b/duration.c
index 1abeb12515d8..abff9a074fc3 100644
--- a/duration.c
+++ b/duration.c
@@ -183,7 +183,6 @@ ldns_duration_create_from_string(const char* str)
return NULL;
} else {
duration->weeks = (time_t) atoi(str+1);
- str = W;
}
}
return duration;
@@ -191,123 +190,51 @@ ldns_duration_create_from_string(const char* str)
/**
- * Get the number of digits in a number.
- *
+ * Helper func for ldns_duration2string below. If t > 0,
+ * scan print t and c on buf, forwarding buf. Return 0 on success.
*/
-static size_t
-digits_in_number(time_t duration)
+static inline int dur_scan_print(char **buf, char *eob, char c, time_t t)
{
- uint32_t period = (uint32_t) duration;
- size_t count = 0;
-
- while (period > 0) {
- count++;
- period /= 10;
- }
- return count;
+ if (t > 0) {
+ int r = snprintf(*buf, eob - *buf, "%u%c", (unsigned)t, c);
+ if (r < 0 || (*buf += r) >= eob)
+ return -1;
+ }
+ return 0;
}
-
/**
* Convert a duration to a string.
*
*/
char*
-ldns_duration2string(const ldns_duration_type* duration)
+ldns_duration2string(const ldns_duration_type* d)
{
- char* str = NULL, *num = NULL;
- size_t count = 2;
- int T = 0;
-
- if (!duration) {
- return NULL;
- }
-
- if (duration->years > 0) {
- count = count + 1 + digits_in_number(duration->years);
- }
- if (duration->months > 0) {
- count = count + 1 + digits_in_number(duration->months);
- }
- if (duration->weeks > 0) {
- count = count + 1 + digits_in_number(duration->weeks);
- }
- if (duration->days > 0) {
- count = count + 1 + digits_in_number(duration->days);
- }
- if (duration->hours > 0) {
- count = count + 1 + digits_in_number(duration->hours);
- T = 1;
- }
- if (duration->minutes > 0) {
- count = count + 1 + digits_in_number(duration->minutes);
- T = 1;
- }
- if (duration->seconds > 0) {
- count = count + 1 + digits_in_number(duration->seconds);
- T = 1;
- }
- if (T) {
- count++;
- }
-
- str = (char*) calloc(count, sizeof(char));
- str[0] = 'P';
- str[1] = '\0';
-
- if (duration->years > 0) {
- count = digits_in_number(duration->years);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uY", (unsigned int) duration->years);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- if (duration->months > 0) {
- count = digits_in_number(duration->months);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uM", (unsigned int) duration->months);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- if (duration->weeks > 0) {
- count = digits_in_number(duration->weeks);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uW", (unsigned int) duration->weeks);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- if (duration->days > 0) {
- count = digits_in_number(duration->days);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uD", (unsigned int) duration->days);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- if (T) {
- str = strncat(str, "T", 1);
- }
- if (duration->hours > 0) {
- count = digits_in_number(duration->hours);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uH", (unsigned int) duration->hours);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- if (duration->minutes > 0) {
- count = digits_in_number(duration->minutes);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uM", (unsigned int) duration->minutes);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- if (duration->seconds > 0) {
- count = digits_in_number(duration->seconds);
- num = (char*) calloc(count+2, sizeof(char));
- snprintf(num, count+2, "%uS", (unsigned int) duration->seconds);
- str = strncat(str, num, count+2);
- free((void*) num);
- }
- return str;
+ /* Max string size should be 7 * 40 + 3 on a 127 bits machine
+ * So 300 (< 273) is more than enough.
+ */
+ char buf[300] = "P0D", *eob = buf + sizeof(buf), *p = buf + 1;
+
+ if (!d)
+ return NULL;
+
+ if (dur_scan_print(&p, eob, 'Y', d->years)
+ || dur_scan_print(&p, eob, 'M', d->months)
+ || dur_scan_print(&p, eob, 'W', d->weeks)
+ || dur_scan_print(&p, eob, 'D', d->days))
+ return NULL;
+
+ if (d->hours || d->minutes || d->seconds) {
+ if (p > (eob - 2))
+ return NULL; /* Error; no space left on buf for 'T' */
+
+ *p++ = 'T'; *p = 0;
+ if (dur_scan_print(&p, eob, 'H', d->hours)
+ || dur_scan_print(&p, eob, 'M', d->minutes)
+ || dur_scan_print(&p, eob, 'S', d->seconds))
+ return NULL;
+ }
+ return strdup(buf);
}
diff --git a/edns.c b/edns.c
new file mode 100644
index 000000000000..3d002d67ed8c
--- /dev/null
+++ b/edns.c
@@ -0,0 +1,436 @@
+/*
+ * edns.c
+ *
+ * edns implementation
+ *
+ * a Net::DNS like library for C
+ *
+ * (c) NLnet Labs, 2004-2022
+ *
+ * See the file LICENSE for the license
+ */
+
+#include <ldns/ldns.h>
+
+#define LDNS_OPTIONLIST_INIT 8
+
+/*
+ * Access functions
+ * functions to get and set type checking
+ */
+
+/* read */
+size_t
+ldns_edns_get_size(const ldns_edns_option *edns)
+{
+ assert(edns != NULL);
+ return edns->_size;
+}
+
+ldns_edns_option_code
+ldns_edns_get_code(const ldns_edns_option *edns)
+{
+ assert(edns != NULL);
+ return edns->_code;
+}
+
+uint8_t *
+ldns_edns_get_data(const ldns_edns_option *edns)
+{
+ assert(edns != NULL);
+ return edns->_data;
+}
+
+ldns_buffer *
+ldns_edns_get_wireformat_buffer(const ldns_edns_option *edns)
+{
+ uint16_t option;
+ size_t size;
+ uint8_t* data;
+ ldns_buffer* buffer;
+
+ if (edns == NULL) {
+ return NULL;
+ }
+
+ option = ldns_edns_get_code(edns);
+ size = ldns_edns_get_size(edns);
+ data = ldns_edns_get_data(edns);
+
+ buffer = ldns_buffer_new(size + 4);
+
+ if (buffer == NULL) {
+ return NULL;
+ }
+
+ ldns_buffer_write_u16(buffer, option);
+ ldns_buffer_write_u16(buffer, size);
+ ldns_buffer_write(buffer, data, size);
+
+ ldns_buffer_flip(buffer);
+
+ return buffer;
+}
+
+/* write */
+void
+ldns_edns_set_size(ldns_edns_option *edns, size_t size)
+{
+ assert(edns != NULL);
+ edns->_size = size;
+}
+
+void
+ldns_edns_set_code(ldns_edns_option *edns, ldns_edns_option_code code)
+{
+ assert(edns != NULL);
+ edns->_code = code;
+}
+
+void
+ldns_edns_set_data(ldns_edns_option *edns, void *data)
+{
+ /* only copy the pointer */
+ assert(edns != NULL);
+ edns->_data = data;
+}
+
+/* note: data must be allocated memory */
+ldns_edns_option *
+ldns_edns_new(ldns_edns_option_code code, size_t size, void *data)
+{
+ ldns_edns_option *edns;
+ edns = LDNS_MALLOC(ldns_edns_option);
+ if (!edns) {
+ return NULL;
+ }
+ ldns_edns_set_code(edns, code);
+ ldns_edns_set_size(edns, size);
+ ldns_edns_set_data(edns, data);
+
+ return edns;
+}
+
+ldns_edns_option *
+ldns_edns_new_from_data(ldns_edns_option_code code, size_t size, const void *data)
+{
+ ldns_edns_option *edns;
+ edns = LDNS_MALLOC(ldns_edns_option);
+ if (!edns) {
+ return NULL;
+ }
+ edns->_data = LDNS_XMALLOC(uint8_t, size);
+ if (!edns->_data) {
+ LDNS_FREE(edns);
+ return NULL;
+ }
+
+ /* set the values */
+ ldns_edns_set_code(edns, code);
+ ldns_edns_set_size(edns, size);
+ memcpy(edns->_data, data, size);
+
+ return edns;
+}
+
+ldns_edns_option *
+ldns_edns_clone(ldns_edns_option *edns)
+{
+ ldns_edns_option *new_option;
+
+ assert(edns != NULL);
+
+ new_option = ldns_edns_new_from_data(ldns_edns_get_code(edns),
+ ldns_edns_get_size(edns),
+ ldns_edns_get_data(edns));
+
+ return new_option;
+}
+
+void
+ldns_edns_deep_free(ldns_edns_option *edns)
+{
+ if (edns) {
+ if (edns->_data) {
+ LDNS_FREE(edns->_data);
+ }
+ LDNS_FREE(edns);
+ }
+}
+
+void
+ldns_edns_free(ldns_edns_option *edns)
+{
+ if (edns) {
+ LDNS_FREE(edns);
+ }
+}
+
+ldns_edns_option_list*
+ldns_edns_option_list_new()
+{
+ ldns_edns_option_list *option_list = LDNS_MALLOC(ldns_edns_option_list);
+ if(!option_list) {
+ return NULL;
+ }
+
+ option_list->_option_count = 0;
+ option_list->_option_capacity = 0;
+ option_list->_options_size = 0;
+ option_list->_options = NULL;
+ return option_list;
+}
+
+ldns_edns_option_list *
+ldns_edns_option_list_clone(ldns_edns_option_list *old_list)
+{
+ size_t i;
+ ldns_edns_option_list *new_list;
+
+ if (!old_list) {
+ return NULL;
+ }
+
+ new_list = ldns_edns_option_list_new();
+ if (!new_list) {
+ return NULL;
+ }
+
+ if (old_list->_option_count == 0) {
+ return new_list;
+ }
+
+ /* adding options also updates the total options size */
+ for (i = 0; i < old_list->_option_count; i++) {
+ ldns_edns_option *option = ldns_edns_clone(ldns_edns_option_list_get_option(old_list, i));
+ if (!ldns_edns_option_list_push(new_list, option)) {
+ ldns_edns_deep_free(option);
+ ldns_edns_option_list_deep_free(new_list);
+ return NULL;
+ }
+ }
+ return new_list;
+}
+
+void
+ldns_edns_option_list_free(ldns_edns_option_list *option_list)
+{
+ if (option_list) {
+ LDNS_FREE(option_list->_options);
+ LDNS_FREE(option_list);
+ }
+}
+
+void
+ldns_edns_option_list_deep_free(ldns_edns_option_list *option_list)
+{
+ size_t i;
+
+ if (option_list) {
+ for (i=0; i < ldns_edns_option_list_get_count(option_list); i++) {
+ ldns_edns_deep_free(ldns_edns_option_list_get_option(option_list, i));
+ }
+ ldns_edns_option_list_free(option_list);
+ }
+}
+
+size_t
+ldns_edns_option_list_get_count(const ldns_edns_option_list *option_list)
+{
+ if (option_list) {
+ return option_list->_option_count;
+ } else {
+ return 0;
+ }
+}
+
+ldns_edns_option *
+ldns_edns_option_list_get_option(const ldns_edns_option_list *option_list, size_t index)
+{
+ if (option_list && index < ldns_edns_option_list_get_count(option_list)) {
+ assert(option_list->_options[index]);
+ return option_list->_options[index];
+ } else {
+ return NULL;
+ }
+}
+
+size_t
+ldns_edns_option_list_get_options_size(const ldns_edns_option_list *option_list)
+{
+ if (option_list) {
+ return option_list->_options_size;
+ } else {
+ return 0;
+ }
+}
+
+
+ldns_edns_option *
+ldns_edns_option_list_set_option(ldns_edns_option_list *option_list,
+ ldns_edns_option *option, size_t index)
+{
+ ldns_edns_option* old;
+
+ assert(option_list != NULL);
+
+ if (index > ldns_edns_option_list_get_count(option_list)) {
+ return NULL;
+ }
+
+ if (option == NULL) {
+ return NULL;
+ }
+
+ old = ldns_edns_option_list_get_option(option_list, index);
+
+ /* shrink the total EDNS size if the old EDNS option exists */
+ if (old != NULL) {
+ option_list->_options_size -= (ldns_edns_get_size(old) + 4);
+ }
+
+ option_list->_options_size += (ldns_edns_get_size(option) + 4);
+
+ option_list->_options[index] = option;
+ return old;
+}
+
+bool
+ldns_edns_option_list_push(ldns_edns_option_list *option_list,
+ ldns_edns_option *option)
+{
+ size_t cap;
+ size_t option_count;
+
+ assert(option_list != NULL);
+
+ if (option == NULL) {
+ return false;
+ }
+
+ cap = option_list->_option_capacity;
+ option_count = ldns_edns_option_list_get_count(option_list);
+
+ /* verify we need to grow the array to fit the new option */
+ if (option_count+1 > cap) {
+ ldns_edns_option **new_list;
+
+ /* initialize the capacity if needed, otherwise grow by doubling */
+ if (cap == 0) {
+ cap = LDNS_OPTIONLIST_INIT; /* initial list size */
+ } else {
+ cap *= 2;
+ }
+
+ new_list = LDNS_XREALLOC(option_list->_options,
+ ldns_edns_option *, cap);
+
+ if (!new_list) {
+ return false;
+ }
+
+ option_list->_options = new_list;
+ option_list->_option_capacity = cap;
+ }
+
+ /* add the new option */
+ ldns_edns_option_list_set_option(option_list, option,
+ option_list->_option_count);
+ option_list->_option_count += 1;
+
+ return true;
+}
+
+ldns_edns_option *
+ldns_edns_option_list_pop(ldns_edns_option_list *option_list)
+{
+ ldns_edns_option* pop;
+ size_t count;
+ size_t cap;
+
+ assert(option_list != NULL);
+
+ cap = option_list->_option_capacity;
+ count = ldns_edns_option_list_get_count(option_list);
+
+ if (count == 0) {
+ return NULL;
+ }
+ /* get the last option from the list */
+ pop = ldns_edns_option_list_get_option(option_list, count-1);
+
+ /* shrink the array */
+ if (cap > LDNS_OPTIONLIST_INIT && count-1 <= cap/2) {
+ ldns_edns_option **new_list;
+
+ cap /= 2;
+
+ new_list = LDNS_XREALLOC(option_list->_options,
+ ldns_edns_option *, cap);
+ if (new_list) {
+ option_list->_options = new_list;
+ }
+ /* if the realloc fails, the capacity for the list remains unchanged */
+ }
+
+ /* shrink the total EDNS size of the options if the popped EDNS option exists */
+ if (pop != NULL) {
+ option_list->_options_size -= (ldns_edns_get_size(pop) + 4);
+ }
+
+ option_list->_option_count = count - 1;
+
+ return pop;
+}
+
+ldns_buffer *
+ldns_edns_option_list2wireformat_buffer(const ldns_edns_option_list *option_list)
+{
+ size_t i, list_size, options_size, option, size;
+ ldns_buffer* buffer;
+ ldns_edns_option *edns;
+ uint8_t* data = NULL;
+
+ if (!option_list) {
+ return NULL;
+ }
+
+ /* get the number of EDNS options in the list*/
+ list_size = ldns_edns_option_list_get_count(option_list);
+
+ /* create buffer the size of the total EDNS wireformat options */
+ options_size = ldns_edns_option_list_get_options_size(option_list);
+ buffer = ldns_buffer_new(options_size);
+
+ if (!buffer) {
+ return NULL;
+ }
+
+ /* write individual serialized EDNS options to final buffer*/
+ for (i = 0; i < list_size; i++) {
+ edns = ldns_edns_option_list_get_option(option_list, i);
+
+ if (edns == NULL) {
+ /* this shouldn't be possible */
+ return NULL;
+ }
+
+ option = ldns_edns_get_code(edns);
+ size = ldns_edns_get_size(edns);
+ data = ldns_edns_get_data(edns);
+
+ /* make sure the option fits */
+ if (!(ldns_buffer_available(buffer, size + 4))) {
+ ldns_buffer_free(buffer);
+ return NULL;
+ }
+
+ ldns_buffer_write_u16(buffer, option);
+ ldns_buffer_write_u16(buffer, size);
+ ldns_buffer_write(buffer, data, size);
+ }
+
+ ldns_buffer_flip(buffer);
+
+ return buffer;
+}
diff --git a/error.c b/error.c
index 35ee5bdd5e24..e3fd12112789 100644
--- a/error.c
+++ b/error.c
@@ -1,6 +1,6 @@
/*
* a error2str function to make sense of all the
- * error codes we have laying ardoun
+ * error codes we have laying around
*
* a Net::DNS like library for C
* LibDNS Team @ NLnet Labs
@@ -36,7 +36,7 @@ ldns_lookup_table ldns_error_str[] = {
{ LDNS_STATUS_NETWORK_ERR, "Could not send or receive, because of network error" },
{ LDNS_STATUS_ADDRESS_ERR, "Could not start AXFR, because of address error" },
{ LDNS_STATUS_FILE_ERR, "Could not open the files" },
- { LDNS_STATUS_UNKNOWN_INET, "Uknown address family" },
+ { LDNS_STATUS_UNKNOWN_INET, "Unknown address family" },
{ LDNS_STATUS_NOT_IMPL, "This function is not implemented (yet), please notify the developers - or not..." },
{ LDNS_STATUS_NULL, "Supplied value pointer null" },
{ LDNS_STATUS_CRYPTO_UNKNOWN_ALGO, "Unknown cryptographic algorithm" },
@@ -157,6 +157,33 @@ ldns_lookup_table ldns_error_str[] = {
"X509_STORE_CTX_set0_dane() functions within OpenSSL >= 1.1.0 "
"to be able to verify the DANE-TA usage type." },
#endif
+ { LDNS_STATUS_ZONEMD_DOUBLE_OCCURRENCE, "A ZONEMD with the same "
+ "<scheme> and hash algorithm occurred more than once." },
+ { LDNS_STATUS_ZONEMD_UNKNOWN_SCHEME, "Unknown ZONEMD <scheme>" },
+ { LDNS_STATUS_ZONEMD_UNKNOWN_HASH, "Unknown ZONEMD hash algorithm" },
+ { LDNS_STATUS_ZONEMD_INVALID_SOA,
+ "Missing or invalid SOA to associate with ZONEMD RR" },
+ { LDNS_STATUS_NO_ZONEMD,
+ "NSEC(3) RRs indicate that a ZONEMD exists, "
+ "but it is not found in the zone" },
+ { LDNS_STATUS_NO_VALID_ZONEMD,
+ "No ZONEMD matching the zone data was found" },
+ { LDNS_STATUS_SYNTAX_SVCPARAM_KEY_ERR, "Syntax error in a key in "
+ "the ServiceParam rdata field of SVCB or HTTPS RR" },
+ { LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR, "Syntax error in a value in "
+ "the ServiceParam rdata field of SVCB or HTTPS RR" },
+ { LDNS_STATUS_RESERVED_SVCPARAM_KEY,
+ "key65535 is reserved and MUST NOT be used "
+ "in the ServiceParam rdata field of SVCB or HTTPS RR" },
+ { LDNS_STATUS_NO_SVCPARAM_VALUE_EXPECTED,
+ "A value was found for a key that SHOULD not have a value "
+ "in the ServiceParam rdata field of SVCB or HTTPS RR" },
+ { LDNS_STATUS_SVCPARAM_KEY_MORE_THAN_ONCE,
+ "A key was found more than once "
+ "in the ServiceParam rdata field of SVCB or HTTPS RR" },
+ { LDNS_STATUS_INVALID_SVCPARAM_VALUE,
+ "Invalid wireformat of a value "
+ "in the ServiceParam rdata field of SVCB or HTTPS RR" },
{ 0, NULL }
};
diff --git a/examples/Makefile.in b/examples/Makefile.in
deleted file mode 100644
index 876a4e5ecf75..000000000000
--- a/examples/Makefile.in
+++ /dev/null
@@ -1,207 +0,0 @@
-# Standard installation pathnames
-# See the file LICENSE for the license
-SHELL = @SHELL@
-VERSION = @PACKAGE_VERSION@
-basesrcdir = $(shell basename `pwd`)
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-mandir = @mandir@
-libtool = @libtool@
-datarootdir = @datarootdir@
-
-CC = @CC@
-CFLAGS = -I. -I${srcdir} @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBNSL_LIBS = @LIBNSL_LIBS@
-LIBSSL_CPPFLAGS = @LIBSSL_CPPFLAGS@
-LIBSSL_LDFLAGS = @LIBSSL_LDFLAGS@
-LIBSSL_LIBS = @LIBSSL_LIBS@
-LIBSSL_SSL_LIBS = @LIBSSL_SSL_LIBS@
-LIBS = @LIBS@
-RUNTIME_PATH = @RUNTIME_PATH@
-LDNSDIR = @LDNSDIR@
-
-INSTALL = $(srcdir)/../install-sh
-
-COMPILE = $(CC) $(CPPFLAGS) $(LIBSSL_CPPFLAGS) $(CFLAGS)
-LINK = $(libtool) --tag=CC --quiet --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $(RUNTIME_PATH)
-LINK_STATIC = $(libtool) --tag=CC --quiet --mode=link $(CC) $(CFLAGS) -static $(LDFLAGS) $(LIBS) $(RUNTIME_PATH)
-
-LINT = splint
-LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list
-#-Dglob64=glob -Dglobfree64=globfree
-# compat with openssl linux edition.
-LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned"
-# compat with NetBSD
-ifeq "$(shell uname)" "NetBSD"
-LINTFLAGS+="-D__RENAME(x)=" -D_NETINET_IN_H_
-endif
-# compat with OpenBSD
-LINTFLAGS+="-Dsigset_t=long"
-# FreeBSD8
-LINTFLAGS+="-D__uint16_t=uint16_t"
-LINTFLAGS+=-D__signed__=signed "-D__packed=" "-D__aligned(x)="
-# Ubuntu 11.04
-LINTFLAGS+="-D__u16=struct __u16" "-D__u32=struct __u32" "-D__u64=struct __u64"
-
-HEADER = config.h
-MAIN_SOURCES = ldns-read-zone.c \
- ldns-mx.c \
- ldns-chaos.c \
- ldns-update.c \
- ldns-keygen.c \
- ldns-key2ds.c \
- ldns-version.c \
- ldns-rrsig.c \
- ldns-walk.c \
- ldns-zsplit.c \
- ldns-zcat.c \
- ldns-dpa.c \
- ldns-resolver.c \
- ldns-test-edns.c \
- ldns-keyfetcher.c \
- ldns-notify.c \
- ldns-testns.c \
- ldns-compare-zones.c \
- ldns-gen-zone.c \
- ldnsd.c
-
-MAIN_SSL_SOURCES = ldns-signzone.c \
- ldns-verify-zone.c \
- ldns-revoke.c \
- ldns-nsec3-hash.c \
- ldns-dane.c
-
-OTHER_SOURCES = ldns-testpkts.c
-
-PROGRAMS=$(MAIN_SOURCES:.c=)
-SSL_PROGRAMS=$(MAIN_SSL_SOURCES:.c=)
-
-.PHONY: all clean realclean all-static
-.SECONDARY: $(MAIN_SOURCES:.c=.o) $(OTHER_SOURCES:.c=.o) $(MAIN_SSL_SOURCES:.c=.o)
-
-all: $(addsuffix .prg,$(PROGRAMS)) $(addsuffix .prg-ssl,$(SSL_PROGRAMS))
-
-all-static: $(addsuffix .stc,$(PROGRAMS)) $(addsuffix .stc-ssl,$(SSL_PROGRAMS))
-
-%.o: $(srcdir)/%.c
- $(COMPILE) -o $@ -c $<
-
-# ldns-testns uses more sources.
-ldns-testns.o: $(srcdir)/ldns-testns.c $(srcdir)/ldns-testpkts.c $(srcdir)/ldns-testpkts.h
-ldns-testns.prg: ldns-testpkts.o
-ldns-testns.stc: ldns-testpkts.o
-
-ldnsd.prg: ldnsd.o
- @if test ! -f $(@:.prg=) -o $< -nt $(@:.prg=); then \
- echo $(LINK) $(LIBNSL_LIBS) -o $(@:.prg=) $^ ; \
- $(LINK) $(LIBNSL_LIBS) -o $(@:.prg=) $^ ; \
- fi
-
-ldnsd.stc: ldnsd.o
- @if test ! -f $@ -o $< -nt $@; then \
- echo $(LINK_STATIC) $(LIBNSL_LDFLAGS) -o $@ $^ ; \
- $(LINK_STATIC) $(LIBNSL_LDFLAGS) -o $@ $^ ; \
- fi
-
-ldns-dane.prg-ssl: ldns-dane.o
- @if test ! -f $(@:.prg-ssl=) -o $< -nt $(@:.prg-ssl=); then \
- echo $(LINK) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_SSL_LIBS) -o $(@:.prg-ssl=) $^ ; \
- $(LINK) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_SSL_LIBS) -o $(@:.prg-ssl=) $^ ; \
- fi
-
-ldns-dane.stc-ssl: ldns-dane.o
- @if test ! -f $@ -o $< -nt $@; then \
- echo $(LINK_STATIC) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_SSL_LIBS) -o $@ $^ ; \
- $(LINK_STATIC) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_SSL_LIBS) -o $@ $^ ; \
- fi
-
-%.prg-ssl: %.o
- @if test ! -f $(@:.prg-ssl=) -o $< -nt $(@:.prg-ssl=); then \
- echo $(LINK) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -o $(@:.prg-ssl=) $^ ; \
- $(LINK) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -o $(@:.prg-ssl=) $^ ; \
- fi
-
-%.stc-ssl: %.o
- @if test ! -f $@ -o $< -nt $@; then \
- echo $(LINK_STATIC) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -o $@ $^ ; \
- $(LINK_STATIC) $(LIBNSL_LIBS) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) -o $@ $^ ; \
- fi
-
-%.prg: %.o
- @if test ! -f $(@:.prg=) -o $< -nt $(@:.prg=); then \
- echo $(LINK) -o $(@:.prg=) $^ ; \
- $(LINK) -o $(@:.prg=) $^ ; \
- fi
-
-%.stc: %.o
- @if test ! -f $@ -o $< -nt $@; then \
- echo $(LINK_STATIC) -o $@ $^ ; \
- $(LINK_STATIC) -o $@ $^ ; \
- fi
-
-lint:
- for i in $(MAIN_SOURCES) $(OTHER_SOURCES); do \
- $(LINT) $(LINTFLAGS) -I. -I$(srcdir) $(srcdir)/$$i $(CPPFLAGS); \
- if [ $$? -ne 0 ] ; then exit 1 ; fi ; \
- done
-
-clean:
- rm -f *.o *.lo
- rm -rf .libs
- rm -f $(PROGRAMS) $(SSL_PROGRAMS)
- rm -f $(addsuffix .stc,$(PROGRAMS)) $(addsuffix .stc-ssl,$(SSL_PROGRAMS))
-
-realclean: clean
- rm -rf autom4te.cache/
- rm -f config.log config.status aclocal.m4 config.h.in configure
- rm -f config.h ldns-dane.1 ldns-verify-zone.1 Makefile
-
-confclean: clean
- rm -rf config.log config.status
- rm -f config.h ldns-dane.1 ldns-verify-zone.1 Makefile
-
-install: $(PROGRAMS) $(SSL_PROGRAMS)
- $(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
- $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)
- $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/man1
- for i in $(PROGRAMS) $(SSL_PROGRAMS); do \
- $(libtool) --tag=CC --mode=install ${INSTALL} -c $$i $(DESTDIR)$(bindir) ; \
- if test -f $$i.1 ; \
- then $(INSTALL) -c -m 644 $$i.1 $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- else $(INSTALL) -c -m 644 $(srcdir)/$$i.1 $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- fi ; \
- done
- exit 0
-
-install-static: all-static
- $(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
- $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)
- $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/man1
- for i in $(PROGRAMS); do \
- $(libtool) --tag=CC --mode=install ${INSTALL} -c $$i.stc $(DESTDIR)$(bindir) ; \
- if test -f $$i.1 ; \
- then $(INSTALL) -c -m 644 $$i.1 $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- else $(INSTALL) -c -m 644 $(srcdir)/$$i.1 $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- fi ; \
- done
- for i in $(SSL_PROGRAMS); do \
- $(libtool) --tag=CC --mode=install ${INSTALL} -c $$i.stc-ssl $(DESTDIR)$(bindir) ; \
- if test -f $$i.1 ; \
- then $(INSTALL) -c -m 644 $$i.1 $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- else $(INSTALL) -c -m 644 $(srcdir)/$$i.1 $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- fi ; \
- done
- exit 0
-
-uninstall:
- for i in $(PROGRAMS) $(SSL_PROGRAMS); do \
- rm -f $(DESTDIR)$(bindir)/$$i ; \
- rm -f $(DESTDIR)$(mandir)/man1/$$i.1 ; \
- done
- exit 0
- rmdir -p $(DESTDIR)$(bindir)
- rmdir -p $(DESTDIR)$(mandir)
diff --git a/examples/config.h.in b/examples/config.h.in
deleted file mode 100644
index 7145f80e4df8..000000000000
--- a/examples/config.h.in
+++ /dev/null
@@ -1,389 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define to 1 if you have the <assert.h> header file. */
-#undef HAVE_ASSERT_H
-
-/* Define to 1 if you have the <ctype.h> header file. */
-#undef HAVE_CTYPE_H
-
-/* Is a CAFILE given at configure time */
-#undef HAVE_DANE_CA_FILE
-
-/* Is a CAPATH given at configure time */
-#undef HAVE_DANE_CA_PATH
-
-/* Define to 1 if you have the declaration of `in6addr_any', and to 0 if you
- don't. */
-#undef HAVE_DECL_IN6ADDR_ANY
-
-/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
- don't. */
-#undef HAVE_DECL_NID_SECP384R1
-
-/* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
- if you don't. */
-#undef HAVE_DECL_NID_X9_62_PRIME256V1
-
-/* Define to 1 if you have the `fork' function. */
-#undef HAVE_FORK
-
-/* Whether getaddrinfo is available */
-#undef HAVE_GETADDRINFO
-
-/* Define to 1 if you have the <getopt.h> header file. */
-#undef HAVE_GETOPT_H
-
-/* If you have HMAC_Update */
-#undef HAVE_HMAC_UPDATE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `isblank' function. */
-#undef HAVE_ISBLANK
-
-/* Define to 1 if you have the `ldns' library (-lldns). */
-#undef HAVE_LIBLDNS
-
-/* Define to 1 if you have the `pcap' library (-lpcap). */
-#undef HAVE_LIBPCAP
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the <netinet/if_ether.h> header file. */
-#undef HAVE_NETINET_IF_ETHER_H
-
-/* Define to 1 if you have the <netinet/igmp.h> header file. */
-#undef HAVE_NETINET_IGMP_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <netinet/in_systm.h> header file. */
-#undef HAVE_NETINET_IN_SYSTM_H
-
-/* Define to 1 if you have the <netinet/ip6.h> header file. */
-#undef HAVE_NETINET_IP6_H
-
-/* Define to 1 if you have the <netinet/ip.h> header file. */
-#undef HAVE_NETINET_IP_H
-
-/* Define to 1 if you have the <netinet/udp.h> header file. */
-#undef HAVE_NETINET_UDP_H
-
-/* Define to 1 if you have the <net/if.h> header file. */
-#undef HAVE_NET_IF_H
-
-/* Define to 1 if you have the <openssl/err.h> header file. */
-#undef HAVE_OPENSSL_ERR_H
-
-/* Define to 1 if you have the <openssl/rand.h> header file. */
-#undef HAVE_OPENSSL_RAND_H
-
-/* Define to 1 if you have the <openssl/ssl.h> header file. */
-#undef HAVE_OPENSSL_SSL_H
-
-/* Define to 1 if you have the <pcap.h> header file. */
-#undef HAVE_PCAP_H
-
-/* Define to 1 if you have the `random' function. */
-#undef HAVE_RANDOM
-
-/* Define to 1 if you have the `sleep' function. */
-#undef HAVE_SLEEP
-
-/* Define to 1 if you have the `srandom' function. */
-#undef HAVE_SRANDOM
-
-/* Define if you have the SSL libraries installed. */
-#undef HAVE_SSL
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdio.h> header file. */
-#undef HAVE_STDIO_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/mount.h> header file. */
-#undef HAVE_SYS_MOUNT_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vfork' function. */
-#undef HAVE_VFORK
-
-/* Define to 1 if you have the <vfork.h> header file. */
-#undef HAVE_VFORK_H
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#undef HAVE_WINSOCK2_H
-
-/* Define to 1 if `fork' works. */
-#undef HAVE_WORKING_FORK
-
-/* Define to 1 if `vfork' works. */
-#undef HAVE_WORKING_VFORK
-
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#undef HAVE_WS2TCPIP_H
-
-/* Is a CAFILE given at configure time */
-#undef LDNS_DANE_CA_FILE
-
-/* Is a CAPATH given at configure time */
-#undef LDNS_DANE_CA_PATH
-
-/* Default trust anchor file */
-#undef LDNS_TRUST_ANCHOR_FILE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define this to enable DANE support. */
-#undef USE_DANE
-
-/* Define this to enable ECDSA support. */
-#undef USE_ECDSA
-
-/* Define this to enable GOST support. */
-#undef USE_GOST
-
-/* Define this to enable SHA256 and SHA512 support. */
-#undef USE_SHA2
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* the version of the windows API enabled */
-#undef WINVER
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
-/* in_addr_t */
-#undef in_addr_t
-
-/* in_port_t */
-#undef in_port_t
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to `short' if <sys/types.h> does not define. */
-#undef int16_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef int32_t
-
-/* Define to `long long' if <sys/types.h> does not define. */
-#undef int64_t
-
-/* Define to `char' if <sys/types.h> does not define. */
-#undef int8_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to 'int' if not defined */
-#undef socklen_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef ssize_t
-
-/* Define to `unsigned short' if <sys/types.h> does not define. */
-#undef uint16_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef uint32_t
-
-/* Define to `unsigned long long' if <sys/types.h> does not define. */
-#undef uint64_t
-
-/* Define to `unsigned char' if <sys/types.h> does not define. */
-#undef uint8_t
-
-/* Define as `fork' if `vfork' does not work. */
-#undef vfork
-
-
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <assert.h>
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-
-#ifdef HAVE_PCAP_H
-#include <pcap.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <netinet/if_ether.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#define USE_WINSOCK 1
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-#ifndef HAVE_GETADDRINFO
-#include <fake-rfc2553.h>
-#endif
-
-#ifndef HAVE_RANDOM
-/* random can be replaced by rand for ldnsexamples */
-#define random rand
-#endif
-
-#ifndef HAVE_SRANDOM
-/* srandom can be replaced by srand for ldnsexamples */
-#define srandom srand
-#endif
-
-extern char *optarg;
-extern int optind, opterr;
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifdef S_SPLINT_S
-#define FD_ZERO(a) /* a */
-#define FD_SET(a,b) /* a, b */
-#endif
-
diff --git a/examples/configure b/examples/configure
deleted file mode 100755
index 07bb57bd4921..000000000000
--- a/examples/configure
+++ /dev/null
@@ -1,7336 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ldns 1.7.0.
-#
-# Report bugs to <libdns@nlnetlabs.nl>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and
-$0: libdns@nlnetlabs.nl about your system, including any
-$0: error possibly output before this message. Then install
-$0: a modern shell, or manually run the script under such a
-$0: shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='ldns'
-PACKAGE_TARNAME='libdns'
-PACKAGE_VERSION='1.7.0'
-PACKAGE_STRING='ldns 1.7.0'
-PACKAGE_BUGREPORT='libdns@nlnetlabs.nl'
-PACKAGE_URL=''
-
-ac_unique_file="ldns-read-zone.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-DEFAULT_CAPATH
-DEFAULT_CAFILE
-LDNS_TRUST_ANCHOR_FILE
-LDNSDIR
-LIBSSL_SSL_LIBS
-LIBSSL_LIBS
-LIBSSL_LDFLAGS
-LIBSSL_CPPFLAGS
-RUNTIME_PATH
-HAVE_SSL
-LIBNSL_LIBS
-libtool
-SET_MAKE
-EGREP
-GREP
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-runstatedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_rpath
-with_ssl
-enable_sha2
-enable_gost
-enable_ecdsa
-enable_dane
-with_ldns
-with_trust_anchor
-with_ca_file
-with_ca_path
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures ldns 1.7.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/libdns]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of ldns 1.7.0:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-rpath Disable hardcoded rpath (default=enabled)
- --disable-sha2 Disable SHA256 and SHA512 RRSIG support
- --disable-gost Disable GOST support
- --disable-ecdsa Disable ECDSA support
- --disable-dane Disable DANE support
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-ssl=pathname enable SSL (will check /usr/local/ssl /usr/lib/ssl
- /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw
- /usr)
- --with-ldns=PATH specify prefix of path of ldns library to use
-
-
- --with-trust-anchor=KEYFILE
- Default location of the trust anchor file for drill
- and ldns-dane. [default=SYSCONFDIR/unbound/root.key]
- --with-ca-file=CAFILE File containing CA certificates for ldns-dane
- --with-ca-path=CAPATH Directory containing CA certificate files for
- ldns-dane
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <libdns@nlnetlabs.nl>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-ldns configure 1.7.0
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------- ##
-## Report this to libdns@nlnetlabs.nl ##
-## ---------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
- (void) $as_decl_use;
-#else
- (void) $as_decl_name;
-#endif
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_decl
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by ldns $as_me 1.7.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# acx_nlnetlabs.m4 - common macros for configure checks
-# Copyright 2009, Wouter Wijngaards, NLnet Labs.
-# BSD licensed.
-#
-# Version 34
-# 2016-03-21 Check -ldl -pthread for libcrypto for ldns and openssl 1.1.0.
-# 2016-03-21 Use HMAC_Update instead of HMAC_CTX_Init (for openssl-1.1.0).
-# 2016-01-04 -D_DEFAULT_SOURCE defined with -D_BSD_SOURCE for Linux glibc 2.20
-# 2015-12-11 FLTO check for new OSX, clang.
-# 2015-11-18 spelling check fix.
-# 2015-11-05 ACX_SSL_CHECKS no longer adds -ldl needlessly.
-# 2015-08-28 ACX_CHECK_PIE and ACX_CHECK_RELRO_NOW added.
-# 2015-03-17 AHX_CONFIG_REALLOCARRAY added
-# 2013-09-19 FLTO help text improved.
-# 2013-07-18 Enable ACX_CHECK_COMPILER_FLAG to test for -Wstrict-prototypes
-# 2013-06-25 FLTO has --disable-flto option.
-# 2013-05-03 Update W32_SLEEP for newer mingw that links but not defines it.
-# 2013-03-22 Fix ACX_RSRC_VERSION for long version numbers.
-# 2012-02-09 Fix AHX_MEMCMP_BROKEN with undef in compat/memcmp.h.
-# 2012-01-20 Fix COMPILER_FLAGS_UNBOUND for gcc 4.6.2 assigned-not-used-warns.
-# 2011-12-05 Fix getaddrinfowithincludes on windows with fedora16 mingw32-gcc.
-# Fix ACX_MALLOC for redefined malloc error.
-# Fix GETADDRINFO_WITH_INCLUDES to add -lws2_32
-# 2011-11-10 Fix FLTO test to not drop a.out in current directory.
-# 2011-11-01 Fix FLTO test for llvm on Lion.
-# 2011-08-01 Fix nonblock test (broken at v13).
-# 2011-08-01 Fix autoconf 2.68 warnings
-# 2011-06-23 Add ACX_CHECK_FLTO to check -flto.
-# 2010-08-16 Fix FLAG_OMITTED for AS_TR_CPP changes in autoconf-2.66.
-# 2010-07-02 Add check for ss_family (for minix).
-# 2010-04-26 Fix to use CPPFLAGS for CHECK_COMPILER_FLAGS.
-# 2010-03-01 Fix RPATH using CONFIG_COMMANDS to run at the very end.
-# 2010-02-18 WITH_SSL outputs the LIBSSL_LDFLAGS, LIBS, CPPFLAGS separate, -ldl
-# 2010-02-01 added ACX_CHECK_MEMCMP_SIGNED, AHX_MEMCMP_BROKEN
-# 2010-01-20 added AHX_COONFIG_STRLCAT
-# 2009-07-14 U_CHAR detection improved for windows crosscompile.
-# added ACX_FUNC_MALLOC
-# fixup some #if to #ifdef
-# NONBLOCKING test for mingw crosscompile.
-# 2009-07-13 added ACX_WITH_SSL_OPTIONAL
-# 2009-07-03 fixup LDFLAGS for empty ssl dir.
-#
-# Automates some of the checking constructs. Aims at portability for POSIX.
-# Documentation for functions is below.
-#
-# the following macro's are provided in this file:
-# (see below for details on each macro).
-#
-# ACX_ESCAPE_BACKSLASH - escape backslashes in var for C-preproc.
-# ACX_RSRC_VERSION - create windows resource version number.
-# ACX_CHECK_COMPILER_FLAG - see if cc supports a flag.
-# ACX_CHECK_ERROR_FLAGS - see which flag is -werror (used below).
-# ACX_CHECK_COMPILER_FLAG_NEEDED - see if flags make the code compile cleanly.
-# ACX_DEPFLAG - find cc dependency flags.
-# ACX_DETERMINE_EXT_FLAGS_UNBOUND - find out which flags enable BSD and POSIX.
-# ACX_CHECK_FORMAT_ATTRIBUTE - find cc printf format syntax.
-# ACX_CHECK_UNUSED_ATTRIBUTE - find cc variable unused syntax.
-# ACX_CHECK_FLTO - see if cc supports -flto and use it if so.
-# ACX_LIBTOOL_C_ONLY - create libtool for C only, improved.
-# ACX_TYPE_U_CHAR - u_char type.
-# ACX_TYPE_RLIM_T - rlim_t type.
-# ACX_TYPE_SOCKLEN_T - socklen_t type.
-# ACX_TYPE_IN_ADDR_T - in_addr_t type.
-# ACX_TYPE_IN_PORT_T - in_port_t type.
-# ACX_ARG_RPATH - add --disable-rpath option.
-# ACX_WITH_SSL - add --with-ssl option, link -lcrypto.
-# ACX_WITH_SSL_OPTIONAL - add --with-ssl option, link -lcrypto,
-# where --without-ssl is also accepted
-# ACX_LIB_SSL - setup to link -lssl.
-# ACX_SYS_LARGEFILE - improved sys_largefile, fseeko, >2G files.
-# ACX_CHECK_GETADDRINFO_WITH_INCLUDES - find getaddrinfo, portably.
-# ACX_FUNC_DEPRECATED - see if func is deprecated.
-# ACX_CHECK_NONBLOCKING_BROKEN - see if nonblocking sockets really work.
-# ACX_MKDIR_ONE_ARG - determine mkdir(2) number of arguments.
-# ACX_FUNC_IOCTLSOCKET - find ioctlsocket, portably.
-# ACX_FUNC_MALLOC - check malloc, define replacement .
-# AHX_CONFIG_FORMAT_ATTRIBUTE - config.h text for format.
-# AHX_CONFIG_UNUSED_ATTRIBUTE - config.h text for unused.
-# AHX_CONFIG_FSEEKO - define fseeko, ftello fallback.
-# AHX_CONFIG_RAND_MAX - define RAND_MAX if needed.
-# AHX_CONFIG_MAXHOSTNAMELEN - define MAXHOSTNAMELEN if needed.
-# AHX_CONFIG_IPV6_MIN_MTU - define IPV6_MIN_MTU if needed.
-# AHX_CONFIG_SNPRINTF - snprintf compat prototype
-# AHX_CONFIG_INET_PTON - inet_pton compat prototype
-# AHX_CONFIG_INET_NTOP - inet_ntop compat prototype
-# AHX_CONFIG_INET_ATON - inet_aton compat prototype
-# AHX_CONFIG_MEMMOVE - memmove compat prototype
-# AHX_CONFIG_STRLCAT - strlcat compat prototype
-# AHX_CONFIG_STRLCPY - strlcpy compat prototype
-# AHX_CONFIG_GMTIME_R - gmtime_r compat prototype
-# AHX_CONFIG_W32_SLEEP - w32 compat for sleep
-# AHX_CONFIG_W32_USLEEP - w32 compat for usleep
-# AHX_CONFIG_W32_RANDOM - w32 compat for random
-# AHX_CONFIG_W32_SRANDOM - w32 compat for srandom
-# AHX_CONFIG_W32_FD_SET_T - w32 detection of FD_SET_T.
-# ACX_CFLAGS_STRIP - strip one flag from CFLAGS
-# ACX_STRIP_EXT_FLAGS - strip extension flags from CFLAGS
-# AHX_CONFIG_FLAG_OMITTED - define omitted flag
-# AHX_CONFIG_FLAG_EXT - define omitted extension flag
-# AHX_CONFIG_EXT_FLAGS - define the stripped extension flags
-# ACX_CHECK_MEMCMP_SIGNED - check if memcmp uses signed characters.
-# AHX_MEMCMP_BROKEN - replace memcmp func for CHECK_MEMCMP_SIGNED.
-# ACX_CHECK_SS_FAMILY - check for sockaddr_storage.ss_family
-# ACX_CHECK_PIE - add --enable-pie option and check if works
-# ACX_CHECK_RELRO_NOW - add --enable-relro-now option and check it
-#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-OURCPPFLAGS=''
-CPPFLAGS=${CPPFLAGS:-${OURCPPFLAGS}}
-OURCFLAGS='-g'
-CFLAGS=${CFLAGS:-${OURCFLAGS}}
-
-$as_echo "#define WINVER 0x0502" >>confdefs.h
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
-
-
- if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-
-# Checks for programs.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-for ac_prog in glibtool libtool15 libtool
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_libtool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$libtool"; then
- ac_cv_prog_libtool="$libtool" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_libtool="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-libtool=$ac_cv_prog_libtool
-if test -n "$libtool"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libtool" >&5
-$as_echo "$libtool" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$libtool" && break
-done
-test -n "$libtool" || libtool="../libtool"
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
-cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-C99FLAG="-std=c99"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
-$as_echo_n "checking whether $CC supports -xc99... " >&6; }
-cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-C99FLAG="-xc99"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-
-fi
-
-
-# Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
- enableval=$enable_rpath; enable_rpath=$enableval
-else
- enable_rpath=yes
-fi
-
-
-if test "x$enable_rpath" = xyes; then
- RPATH_VAL="-Wl,-rpath=\${libdir}"
-fi
-
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
-$as_echo_n "checking whether $CC supports -O2... " >&6; }
-cache=`echo O2 | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-CFLAGS="$CFLAGS -O2"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-
-fi
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
-$as_echo_n "checking whether $CC supports -Werror... " >&6; }
-cache=`echo Werror | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Werror -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-ERRFLAG="-Werror"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-ERRFLAG="-errwarn"
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-$as_echo_n "checking whether $CC supports -Wall... " >&6; }
-cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval \${cv_prog_cc_flag_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-ERRFLAG="$ERRFLAG -Wall"
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-:
-ERRFLAG="$ERRFLAG -errfmt"
-fi
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo '
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test() {
- int a;
- char **opts = NULL;
- struct timeval tv;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- t = ctime_r(&time, buf);
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- return a;
-}
-' > conftest.c
-echo 'void f(){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
-$as_echo_n "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
-cache=`$as_echo "$C99FLAG" | $as_tr_sh`
-if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-echo '#include <stdbool.h>' > conftest.c
-echo 'void f(){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-:
-
-fi
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
-if test "x$ac_cv_type_int8_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int8_t char
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
-if test "x$ac_cv_type_int16_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int16_t short
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
-if test "x$ac_cv_type_int32_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int32_t int
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
-if test "x$ac_cv_type_int64_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int64_t long long
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint8_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint8_t unsigned char
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint16_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint16_t unsigned short
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint32_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint32_t unsigned int
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint64_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint64_t unsigned long long
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define ssize_t int
-_ACEOF
-
-fi
-
-
-for ac_header in sys/types.h getopt.h stdlib.h stdio.h assert.h netinet/in.h ctype.h time.h pcap.h arpa/inet.h sys/time.h sys/socket.h sys/select.h netdb.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in winsock2.h ws2tcpip.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/igmp.h netinet/if_ether.h netinet/ip6.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-$ac_includes_default
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
-$ac_includes_default
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_type_socklen_t" = xyes; then :
-
-else
-
-$as_echo "#define socklen_t int" >>confdefs.h
-
-fi
-
-for ac_header in sys/param.h sys/mount.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-
-
- #if HAVE_SYS_PARAM_H
- # include <sys/param.h>
- #endif
-
-
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-"
-if test "x$ac_cv_type_in_addr_t" = xyes; then :
-
-else
-
-$as_echo "#define in_addr_t uint32_t" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "in_port_t" "ac_cv_type_in_port_t" "
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-"
-if test "x$ac_cv_type_in_port_t" = xyes; then :
-
-else
-
-$as_echo "#define in_port_t uint16_t" >>confdefs.h
-
-fi
-
-
-# check to see if libraries are needed for these functions.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
-$as_echo_n "checking for library containing socket... " >&6; }
-if ${ac_cv_search_socket+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' socket; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_socket=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_socket+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_socket+:} false; then :
-
-else
- ac_cv_search_socket=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-$as_echo "$ac_cv_search_socket" >&6; }
-ac_res=$ac_cv_search_socket
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-tmp_LIBS="$LIBS"
-LIBS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
-$as_echo_n "checking for library containing inet_pton... " >&6; }
-if ${ac_cv_search_inet_pton+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_pton ();
-int
-main ()
-{
-return inet_pton ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' nsl; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_inet_pton=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_inet_pton+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_inet_pton+:} false; then :
-
-else
- ac_cv_search_inet_pton=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
-$as_echo "$ac_cv_search_inet_pton" >&6; }
-ac_res=$ac_cv_search_inet_pton
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-LIBNSL_LIBS=$LIBS
-
-LIBS="$tmp_LIBS"
-
-tmp_CPPFLAGS="$CPPFLAGS"
-tmp_LDFLAGS="$LDFLAGS"
-tmp_LIBS="$LIBS"
-
-
-
-# Check whether --with-ssl was given.
-if test "${with_ssl+set}" = set; then :
- withval=$with_ssl;
-
-else
-
- withval="yes"
-
-fi
-
-
- withval=$withval
- if test x_$withval != x_no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
-$as_echo_n "checking for SSL... " >&6; }
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr"
- fi
- for dir in $withval; do
- ssldir="$dir"
- if test -f "$dir/include/openssl/ssl.h"; then
- found_ssl="yes"
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SSL /**/
-_ACEOF
-
- if test "$ssldir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$ssldir/include"
- LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir/include"
- fi
- break;
- fi
- done
- if test x_$found_ssl != x_yes; then
- as_fn_error $? "Cannot find the SSL libraries in $withval" "$LINENO" 5
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
-$as_echo "found in $ssldir" >&6; }
- HAVE_SSL=yes
- if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
- LDFLAGS="$LDFLAGS -L$ssldir/lib"
- LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$ssldir/lib" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib"
- fi
- fi
-
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HMAC_Update in -lcrypto" >&5
-$as_echo_n "checking for HMAC_Update in -lcrypto... " >&6; }
- LIBS="$LIBS -lcrypto"
- LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- # check if -lwsock32 or -lgdi32 are needed.
- BAKLIBS="$LIBS"
- BAKSSLLIBS="$LIBSSL_LIBS"
- LIBS="$LIBS -lgdi32"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
-$as_echo_n "checking if -lcrypto needs -lgdi32... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
-$as_echo_n "checking if -lcrypto needs -ldl... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl -pthread"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
-$as_echo_n "checking if -lcrypto needs -ldl -pthread... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- int HMAC_Update(void);
- (void)HMAC_Update();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-
-$as_echo "#define HAVE_HMAC_UPDATE 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
-
-
- fi
-for ac_header in openssl/ssl.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_ssl_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_SSL_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in openssl/err.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_err_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_ERR_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in openssl/rand.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_rand_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_OPENSSL_RAND_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-if test "x$HAVE_SSL" = "xyes"; then
-LIBSSL_SSL_LIBS="-lssl $LIBSSL_LIBS"
-
-fi
-CPPFLAGS="$tmp_CPPFLAGS"
-LDFLAGS="$tmp_LDFLAGS"
-LIBS="$tmp_LIBS"
-
-# use libcrypto to check the following:
-tmp_LDFLAGS="$LDFLAGS"
-tmp_LIBS="$LIBS"
-LDFLAGS="$LDFLAGS $LIBSSL_LDFLAGS"
-LIBS="$LIBS $LIBSSL_LIBS"
-# Check whether --enable-sha2 was given.
-if test "${enable_sha2+set}" = set; then :
- enableval=$enable_sha2;
-fi
-
-case "$enable_sha2" in
- no)
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SHA256 and SHA512" >&5
-$as_echo_n "checking for SHA256 and SHA512... " >&6; }
- ac_fn_c_check_func "$LINENO" "SHA256_Init" "ac_cv_func_SHA256_Init"
-if test "x$ac_cv_func_SHA256_Init" = xyes; then :
-
-else
-
- as_fn_error $? "SHA2 enabled, but no SHA2 functions found in OpenSSL" "$LINENO" 5
-
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define USE_SHA2 1
-_ACEOF
-
- ;;
-esac
-
-# Check whether --enable-gost was given.
-if test "${enable_gost+set}" = set; then :
- enableval=$enable_gost;
-fi
-
-case "$enable_gost" in
- no)
- ;;
- *)
- if test "x$HAVE_SSL" != "xyes"; then
- as_fn_error $? "GOST enabled, but no SSL support" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOST" >&5
-$as_echo_n "checking for GOST... " >&6; }
- ac_fn_c_check_func "$LINENO" "EVP_PKEY_set_type_str" "ac_cv_func_EVP_PKEY_set_type_str"
-if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes; then :
-
-else
- as_fn_error $? "OpenSSL >= 1.0.0 is needed for GOST support or rerun with --disable-gost" "$LINENO" 5
-fi
-
- ac_fn_c_check_func "$LINENO" "EC_KEY_new" "ac_cv_func_EC_KEY_new"
-if test "x$ac_cv_func_EC_KEY_new" = xyes; then :
-
-else
- as_fn_error $? "No ECC functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-gost" "$LINENO" 5
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define USE_GOST 1
-_ACEOF
-
- ;;
-esac
-
-# Check whether --enable-ecdsa was given.
-if test "${enable_ecdsa+set}" = set; then :
- enableval=$enable_ecdsa;
-fi
-
-case "$enable_ecdsa" in
- no)
- ;;
- *) if test "x$HAVE_SSL" != "xyes"; then
- as_fn_error $? "ECDSA enabled, but no SSL support" "$LINENO" 5
- fi
- ac_fn_c_check_func "$LINENO" "ECDSA_sign" "ac_cv_func_ECDSA_sign"
-if test "x$ac_cv_func_ECDSA_sign" = xyes; then :
-
-else
- as_fn_error $? "OpenSSL does not support ECDSA: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-
- ac_fn_c_check_func "$LINENO" "SHA384_Init" "ac_cv_func_SHA384_Init"
-if test "x$ac_cv_func_SHA384_Init" = xyes; then :
-
-else
- as_fn_error $? "OpenSSL does not support SHA384: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-
- ac_fn_c_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
-#include <openssl/evp.h>
-
-"
-if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-
-else
- as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-ac_fn_c_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
-#include <openssl/evp.h>
-
-"
-if test "x$ac_cv_have_decl_NID_secp384r1" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_NID_SECP384R1 $ac_have_decl
-_ACEOF
-if test $ac_have_decl = 1; then :
-
-else
- as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade OpenSSL or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-
- # we now know we have ECDSA and the required curves.
-
-cat >>confdefs.h <<_ACEOF
-#define USE_ECDSA 1
-_ACEOF
-
- ;;
-esac
-
-# Check whether --enable-dane was given.
-if test "${enable_dane+set}" = set; then :
- enableval=$enable_dane;
-fi
-
-case "$enable_dane" in
- no)
- ;;
- *) if test "x$HAVE_SSL" != "xyes"; then
- as_fn_error $? "DANE enabled, but no SSL support" "$LINENO" 5
- fi
- ac_fn_c_check_func "$LINENO" "X509_check_ca" "ac_cv_func_X509_check_ca"
-if test "x$ac_cv_func_X509_check_ca" = xyes; then :
-
-else
- as_fn_error $? "OpenSSL does not support DANE: please upgrade OpenSSL or rerun with --disable-dane" "$LINENO" 5
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define USE_DANE 1
-_ACEOF
-
- ;;
-esac
-
-LDFLAGS="$tmp_LDFLAGS"
-LIBS="$tmp_LIBS"
-
-#AC_CHECK_HEADER(ldns/ldns.h,, [
-# AC_MSG_ERROR([Can't find ldns headers (make copy-headers in devel source.)])
-# ], [AC_INCLUDES_DEFAULT]
-#)
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_offline in -lpcap" >&5
-$as_echo_n "checking for pcap_open_offline in -lpcap... " >&6; }
-if ${ac_cv_lib_pcap_pcap_open_offline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpcap $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pcap_open_offline ();
-int
-main ()
-{
-return pcap_open_offline ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_pcap_pcap_open_offline=yes
-else
- ac_cv_lib_pcap_pcap_open_offline=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcap_pcap_open_offline" >&5
-$as_echo "$ac_cv_lib_pcap_pcap_open_offline" >&6; }
-if test "x$ac_cv_lib_pcap_pcap_open_offline" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPCAP 1
-_ACEOF
-
- LIBS="-lpcap $LIBS"
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can't find pcap library (needed for ldns-dpa, will not build dpa now.)" >&5
-$as_echo "$as_me: WARNING: Can't find pcap library (needed for ldns-dpa, will not build dpa now.)" >&2;}
-
-
-fi
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
-$as_echo_n "checking for getaddrinfo... " >&6; }
-if ${ac_cv_func_getaddrinfo+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_func_getaddrinfo=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-char* getaddrinfo();
-char* (*f) () = getaddrinfo;
-#ifdef __cplusplus
-}
-#endif
-int main() {
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_func_getaddrinfo="yes"
-else
- ORIGLIBS="$LIBS"
-LIBS="$LIBS -lws2_32"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-int
-main ()
-{
-
- (void)getaddrinfo(NULL, NULL, NULL, NULL);
-
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_func_getaddrinfo="yes"
-LDFLAGS="$LDFLAGS -lws2_32"
-
-else
- ac_cv_func_getaddrinfo="no"
-LIBS="$ORIGLIBS"
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
-$as_echo "$ac_cv_func_getaddrinfo" >&6; }
-if test $ac_cv_func_getaddrinfo = yes; then
-
-$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h
-
-fi
-
-
-ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
-_ACEOF
-
-fi
-
-for ac_header in vfork.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
-if test "x$ac_cv_header_vfork_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_VFORK_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in fork vfork
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-if test "x$ac_cv_func_fork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-$as_echo_n "checking for working fork... " >&6; }
-if ${ac_cv_func_fork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_fork_works=cross
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-
- /* By Ruediger Kuhlmann. */
- return fork () < 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_fork_works=yes
-else
- ac_cv_func_fork_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-$as_echo "$ac_cv_func_fork_works" >&6; }
-
-else
- ac_cv_func_fork_works=$ac_cv_func_fork
-fi
-if test "x$ac_cv_func_fork_works" = xcross; then
- case $host in
- *-*-amigaos* | *-*-msdosdjgpp*)
- # Override, as these systems have only a dummy fork() stub
- ac_cv_func_fork_works=no
- ;;
- *)
- ac_cv_func_fork_works=yes
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
-fi
-ac_cv_func_vfork_works=$ac_cv_func_vfork
-if test "x$ac_cv_func_vfork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-$as_echo_n "checking for working vfork... " >&6; }
-if ${ac_cv_func_vfork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_vfork_works=cross
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Thanks to Paul Eggert for this test. */
-$ac_includes_default
-#include <sys/wait.h>
-#ifdef HAVE_VFORK_H
-# include <vfork.h>
-#endif
-/* On some sparc systems, changes by the child to local and incoming
- argument registers are propagated back to the parent. The compiler
- is told about this with #include <vfork.h>, but some compilers
- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
- static variable whose address is put into a register that is
- clobbered by the vfork. */
-static void
-#ifdef __cplusplus
-sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
-{
- static pid_t child;
- if (!child) {
- child = vfork ();
- if (child < 0) {
- perror ("vfork");
- _exit(2);
- }
- if (!child) {
- arg = getpid();
- write(-1, "", 0);
- _exit (arg);
- }
- }
-}
-
-int
-main ()
-{
- pid_t parent = getpid ();
- pid_t child;
-
- sparc_address_test (0);
-
- child = vfork ();
-
- if (child == 0) {
- /* Here is another test for sparc vfork register problems. This
- test uses lots of local variables, at least as many local
- variables as main has allocated so far including compiler
- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
- reuse the register of parent for one of the local variables,
- since it will think that parent can't possibly be used any more
- in this routine. Assigning to the local variable will thus
- munge parent in the parent process. */
- pid_t
- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
- /* Convince the compiler that p..p7 are live; otherwise, it might
- use the same hardware register for all 8 local variables. */
- if (p != p1 || p != p2 || p != p3 || p != p4
- || p != p5 || p != p6 || p != p7)
- _exit(1);
-
- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
- from child file descriptors. If the child closes a descriptor
- before it execs or exits, this munges the parent's descriptor
- as well. Test for this by closing stdout in the child. */
- _exit(close(fileno(stdout)) != 0);
- } else {
- int status;
- struct stat st;
-
- while (wait(&status) != child)
- ;
- return (
- /* Was there some problem with vforking? */
- child < 0
-
- /* Did the child fail? (This shouldn't happen.) */
- || status
-
- /* Did the vfork/compiler bug occur? */
- || parent != getpid()
-
- /* Did the file descriptor bug occur? */
- || fstat(fileno(stdout), &st) != 0
- );
- }
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_vfork_works=yes
-else
- ac_cv_func_vfork_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-$as_echo "$ac_cv_func_vfork_works" >&6; }
-
-fi;
-if test "x$ac_cv_func_fork_works" = xcross; then
- ac_cv_func_vfork_works=$ac_cv_func_vfork
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
-fi
-
-if test "x$ac_cv_func_vfork_works" = xyes; then
-
-$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h
-
-else
-
-$as_echo "#define vfork fork" >>confdefs.h
-
-fi
-if test "x$ac_cv_func_fork_works" = xyes; then
-
-$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
-
-fi
-
-for ac_func in isblank srandom random sleep
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-ac_fn_c_check_decl "$LINENO" "in6addr_any" "ac_cv_have_decl_in6addr_any" "$ac_includes_default
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#ifdef HAVE_NETINET_IGMP_H
-#include <netinet/igmp.h>
-#endif
-
-"
-if test "x$ac_cv_have_decl_in6addr_any" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_IN6ADDR_ANY $ac_have_decl
-_ACEOF
-
-
-# check for ldns
-
-# Check whether --with-ldns was given.
-if test "${with_ldns+set}" = set; then :
- withval=$with_ldns;
- specialldnsdir="$withval"
- CPPFLAGS="$CPPFLAGS -I$withval/include"
- LDFLAGS="-L$withval -L$withval/lib $LDFLAGS"
- LDNSDIR="$withval"
-
-
-fi
-
-
-# check for ldns development source tree
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldns devel source" >&5
-$as_echo_n "checking for ldns devel source... " >&6; }
-ldns_dev_dir=..
-if test -f $ldns_dev_dir/ldns/util.h && \
- grep LDNS_VERSION $ldns_dev_dir/ldns/util.h >/dev/null; then
- ldns_version=`grep LDNS_VERSION $ldns_dev_dir/ldns/util.h | sed -e 's/^.*"\(.*\)".*$/\1/'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $ldns_dev_dir with $ldns_version" >&5
-$as_echo "using $ldns_dev_dir with $ldns_version" >&6; }
- CPPFLAGS="$CPPFLAGS -I$ldns_dev_dir/include"
- LDFLAGS="-L$ldns_dev_dir -L$ldns_dev_dir/lib $LDFLAGS"
- LIBS="$LIBS -lldns"
-
-$as_echo "#define HAVE_LIBLDNS 1" >>confdefs.h
-
- LDNSDIR="$ldns_dev_dir"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldns_rr_new in -lldns" >&5
-$as_echo_n "checking for ldns_rr_new in -lldns... " >&6; }
-if ${ac_cv_lib_ldns_ldns_rr_new+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lldns $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ldns_rr_new ();
-int
-main ()
-{
-return ldns_rr_new ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_ldns_ldns_rr_new=yes
-else
- ac_cv_lib_ldns_ldns_rr_new=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldns_ldns_rr_new" >&5
-$as_echo "$ac_cv_lib_ldns_ldns_rr_new" >&6; }
-if test "x$ac_cv_lib_ldns_ldns_rr_new" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBLDNS 1
-_ACEOF
-
- LIBS="-lldns $LIBS"
-
-else
-
- as_fn_error $? "Can't find ldns library" "$LINENO" 5
-
-fi
-
-fi
-
-
-
-
-# Check whether --with-trust-anchor was given.
-if test "${with_trust_anchor+set}" = set; then :
- withval=$with_trust_anchor;
- LDNS_TRUST_ANCHOR_FILE="$withval"
-
-else
-
- if test "x$LDNS_TRUST_ANCHOR_FILE" = "x"; then
- if test "x$sysconfdir" = 'x${prefix}/etc' ; then
- if test "x$prefix" = 'xNONE' ; then
- LDNS_TRUST_ANCHOR_FILE="/etc/unbound/root.key"
- else
- LDNS_TRUST_ANCHOR_FILE="${prefix}/etc/unbound/root.key"
- fi
- else
- LDNS_TRUST_ANCHOR_FILE="${sysconfdir}/unbound/root.key"
- fi
- fi
-
-fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define LDNS_TRUST_ANCHOR_FILE "$LDNS_TRUST_ANCHOR_FILE"
-_ACEOF
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Default trust anchor: $LDNS_TRUST_ANCHOR_FILE" >&5
-$as_echo "$as_me: Default trust anchor: $LDNS_TRUST_ANCHOR_FILE" >&6;}
-
-
-# Check whether --with-ca-file was given.
-if test "${with_ca_file+set}" = set; then :
- withval=$with_ca_file;
-
-$as_echo "#define HAVE_DANE_CA_FILE 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define LDNS_DANE_CA_FILE "$withval"
-_ACEOF
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using CAfile: $withval" >&5
-$as_echo "$as_me: Using CAfile: $withval" >&6;}
- DEFAULT_CAFILE="Default is $withval"
-
-
-else
-
-
-$as_echo "#define HAVE_DANE_CA_FILE 0" >>confdefs.h
-
-
-
-fi
-
-
-
-# Check whether --with-ca-path was given.
-if test "${with_ca_path+set}" = set; then :
- withval=$with_ca_path;
-
-$as_echo "#define HAVE_DANE_CA_PATH 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define LDNS_DANE_CA_PATH "$withval"
-_ACEOF
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using CApath: $withval" >&5
-$as_echo "$as_me: Using CApath: $withval" >&6;}
- DEFAULT_CAPATH="Default is $withval"
-
-
-else
-
-
-$as_echo "#define HAVE_DANE_CA_PATH 0" >>confdefs.h
-
-
-
-fi
-
-
-
-
-ac_config_files="$ac_config_files Makefile ldns-dane.1 ldns-verify-zone.1"
-
-ac_config_headers="$ac_config_headers config.h"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by ldns $as_me 1.7.0, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <libdns@nlnetlabs.nl>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-ldns config.status 1.7.0
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "ldns-dane.1") CONFIG_FILES="$CONFIG_FILES ldns-dane.1" ;;
- "ldns-verify-zone.1") CONFIG_FILES="$CONFIG_FILES ldns-verify-zone.1" ;;
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
- ;;
-
-
- esac
-
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/examples/configure.ac b/examples/configure.ac
deleted file mode 100644
index f692a4dceca3..000000000000
--- a/examples/configure.ac
+++ /dev/null
@@ -1,477 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_PREREQ(2.56)
-AC_INIT(ldns, 1.7.0, libdns@nlnetlabs.nl,libdns)
-AC_CONFIG_SRCDIR([ldns-read-zone.c])
-sinclude(../acx_nlnetlabs.m4)
-
-OURCPPFLAGS=''
-CPPFLAGS=${CPPFLAGS:-${OURCPPFLAGS}}
-OURCFLAGS='-g'
-CFLAGS=${CFLAGS:-${OURCFLAGS}}
-AC_DEFINE(WINVER, 0x0502, [the version of the windows API enabled])
-
-AC_AIX
-# Checks for programs.
-AC_PROG_CC
-AC_PROG_MAKE_SET
-AC_CHECK_PROGS(libtool, [glibtool libtool15 libtool], [../libtool])
-
-ACX_CHECK_COMPILER_FLAG(std=c99, [C99FLAG="-std=c99"])
-ACX_CHECK_COMPILER_FLAG(xc99, [C99FLAG="-xc99"])
-
-AC_ARG_ENABLE(rpath,
- [AC_HELP_STRING([--disable-rpath], [Disable hardcoded rpath (default=enabled)])],
- enable_rpath=$enableval, enable_rpath=yes)
-
-if test "x$enable_rpath" = xyes; then
- RPATH_VAL="-Wl,-rpath=\${libdir}"
-fi
-
-
-AC_TYPE_SIZE_T
-ACX_CHECK_COMPILER_FLAG(O2, [CFLAGS="$CFLAGS -O2"])
-
-ACX_CHECK_COMPILER_FLAG_NEEDED($C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600,
-[
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test() {
- int a;
- char **opts = NULL;
- struct timeval tv;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- t = ctime_r(&time, buf);
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- return a;
-}
-], [CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"])
-
-
-ACX_CHECK_COMPILER_FLAG_NEEDED($C99FLAG, [#include <stdbool.h>], [CFLAGS="$CFLAGS $C99FLAG"])
-
-AC_C_INLINE
-AC_CHECK_TYPE(int8_t, char)
-AC_CHECK_TYPE(int16_t, short)
-AC_CHECK_TYPE(int32_t, int)
-AC_CHECK_TYPE(int64_t, long long)
-AC_CHECK_TYPE(uint8_t, unsigned char)
-AC_CHECK_TYPE(uint16_t, unsigned short)
-AC_CHECK_TYPE(uint32_t, unsigned int)
-AC_CHECK_TYPE(uint64_t, unsigned long long)
-AC_CHECK_TYPE(ssize_t, int)
-
-AC_CHECK_HEADERS([sys/types.h getopt.h stdlib.h stdio.h assert.h netinet/in.h ctype.h time.h pcap.h arpa/inet.h sys/time.h sys/socket.h sys/select.h netdb.h],,, [AC_INCLUDES_DEFAULT])
-AC_CHECK_HEADERS([winsock2.h ws2tcpip.h],,, [AC_INCLUDES_DEFAULT])
-AC_CHECK_HEADERS([netinet/in_systm.h net/if.h netinet/ip.h netinet/udp.h netinet/igmp.h netinet/if_ether.h netinet/ip6.h],,, [
-AC_INCLUDES_DEFAULT
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif])
-
-ACX_TYPE_SOCKLEN_T
-AC_CHECK_HEADERS([sys/param.h sys/mount.h],,,
-[AC_INCLUDES_DEFAULT]
-[
- [
- #if HAVE_SYS_PARAM_H
- # include <sys/param.h>
- #endif
- ]
-])
-AC_CHECK_TYPE(in_addr_t, [], [AC_DEFINE([in_addr_t], [uint32_t], [in_addr_t])], [
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif])
-AC_CHECK_TYPE(in_port_t, [], [AC_DEFINE([in_port_t], [uint16_t], [in_port_t])], [
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif])
-
-# check to see if libraries are needed for these functions.
-AC_SEARCH_LIBS(socket, socket)
-tmp_LIBS="$LIBS"
-LIBS=
-AC_SEARCH_LIBS(inet_pton, nsl)
-AC_SUBST(LIBNSL_LIBS,$LIBS)
-LIBS="$tmp_LIBS"
-
-tmp_CPPFLAGS="$CPPFLAGS"
-tmp_LDFLAGS="$LDFLAGS"
-tmp_LIBS="$LIBS"
-
-ACX_WITH_SSL_OPTIONAL
-
-AC_SUBST(LIBSSL_CPPFLAGS)
-AC_SUBST(LIBSSL_LDFLAGS)
-AC_SUBST(LIBSSL_LIBS)
-if test "x$HAVE_SSL" = "xyes"; then
-AC_SUBST(LIBSSL_SSL_LIBS, ["-lssl $LIBSSL_LIBS"])
-fi
-CPPFLAGS="$tmp_CPPFLAGS"
-LDFLAGS="$tmp_LDFLAGS"
-LIBS="$tmp_LIBS"
-
-# use libcrypto to check the following:
-tmp_LDFLAGS="$LDFLAGS"
-tmp_LIBS="$LIBS"
-LDFLAGS="$LDFLAGS $LIBSSL_LDFLAGS"
-LIBS="$LIBS $LIBSSL_LIBS"
-AC_ARG_ENABLE(sha2, AC_HELP_STRING([--disable-sha2], [Disable SHA256 and SHA512 RRSIG support]))
-case "$enable_sha2" in
- no)
- ;;
- *)
- AC_MSG_CHECKING(for SHA256 and SHA512)
- AC_CHECK_FUNC(SHA256_Init,, [
- AC_MSG_ERROR([SHA2 enabled, but no SHA2 functions found in OpenSSL])
- ])
- AC_DEFINE_UNQUOTED([USE_SHA2], [1], [Define this to enable SHA256 and SHA512 support.])
- ;;
-esac
-
-AC_ARG_ENABLE(gost, AC_HELP_STRING([--disable-gost], [Disable GOST support]))
-case "$enable_gost" in
- no)
- ;;
- *)
- if test "x$HAVE_SSL" != "xyes"; then
- AC_MSG_ERROR([GOST enabled, but no SSL support])
- fi
- AC_MSG_CHECKING(for GOST)
- AC_CHECK_FUNC(EVP_PKEY_set_type_str, [],[AC_MSG_ERROR([OpenSSL >= 1.0.0 is needed for GOST support or rerun with --disable-gost])])
- AC_CHECK_FUNC(EC_KEY_new, [], [AC_MSG_ERROR([No ECC functions found in OpenSSL: please upgrade OpenSSL or rerun with --disable-gost])])
- AC_DEFINE_UNQUOTED([USE_GOST], [1], [Define this to enable GOST support.])
- ;;
-esac
-
-AC_ARG_ENABLE(ecdsa, AC_HELP_STRING([--disable-ecdsa], [Disable ECDSA support]))
-case "$enable_ecdsa" in
- no)
- ;;
- *) dnl default
- if test "x$HAVE_SSL" != "xyes"; then
- AC_MSG_ERROR([ECDSA enabled, but no SSL support])
- fi
- AC_CHECK_FUNC(ECDSA_sign, [], [AC_MSG_ERROR([OpenSSL does not support ECDSA: please upgrade OpenSSL or rerun with --disable-ecdsa])])
- AC_CHECK_FUNC(SHA384_Init, [], [AC_MSG_ERROR([OpenSSL does not support SHA384: please upgrade OpenSSL or rerun with --disable-ecdsa])])
- AC_CHECK_DECLS([NID_X9_62_prime256v1, NID_secp384r1], [], [AC_MSG_ERROR([OpenSSL does not support the ECDSA curves: please upgrade OpenSSL or rerun with --disable-ecdsa])], [AC_INCLUDES_DEFAULT
-#include <openssl/evp.h>
- ])
- # we now know we have ECDSA and the required curves.
- AC_DEFINE_UNQUOTED([USE_ECDSA], [1], [Define this to enable ECDSA support.])
- ;;
-esac
-
-AC_ARG_ENABLE(dane, AC_HELP_STRING([--disable-dane], [Disable DANE support]))
-case "$enable_dane" in
- no)
- ;;
- *) dnl default
- if test "x$HAVE_SSL" != "xyes"; then
- AC_MSG_ERROR([DANE enabled, but no SSL support])
- fi
- AC_CHECK_FUNC(X509_check_ca, [], [AC_MSG_ERROR([OpenSSL does not support DANE: please upgrade OpenSSL or rerun with --disable-dane])])
- AC_DEFINE_UNQUOTED([USE_DANE], [1], [Define this to enable DANE support.])
- ;;
-esac
-
-LDFLAGS="$tmp_LDFLAGS"
-LIBS="$tmp_LIBS"
-
-#AC_CHECK_HEADER(ldns/ldns.h,, [
-# AC_MSG_ERROR([Can't find ldns headers (make copy-headers in devel source.)])
-# ], [AC_INCLUDES_DEFAULT]
-#)
-
-AC_CHECK_LIB(pcap, pcap_open_offline,, [
- AC_MSG_WARN([Can't find pcap library (needed for ldns-dpa, will not build dpa now.)])
- ]
-)
-
-
-AC_DEFUN([AC_CHECK_GETADDRINFO_WITH_INCLUDES],
-[AC_REQUIRE([AC_PROG_CC])
-AC_MSG_CHECKING(for getaddrinfo)
-AC_CACHE_VAL(ac_cv_func_getaddrinfo,
-[ac_cv_func_getaddrinfo=no
-AC_LINK_IFELSE(
-[
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-char* getaddrinfo();
-char* (*f) () = getaddrinfo;
-#ifdef __cplusplus
-}
-#endif
-int main() {
- ;
- return 0;
-}
-],
-dnl this case on linux, solaris, bsd
-[ac_cv_func_getaddrinfo="yes"],
-dnl no quick getaddrinfo, try mingw32 and winsock2 library.
-ORIGLIBS="$LIBS"
-LIBS="$LIBS -lws2_32"
-AC_LINK_IFELSE(
-AC_LANG_PROGRAM(
-[
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-],
-[
- (void)getaddrinfo(NULL, NULL, NULL, NULL);
-]
-),
-[ac_cv_func_getaddrinfo="yes"
-LDFLAGS="$LDFLAGS -lws2_32"
-],
-[ac_cv_func_getaddrinfo="no"
-LIBS="$ORIGLIBS"
-])
-)
-])
-
-AC_MSG_RESULT($ac_cv_func_getaddrinfo)
-if test $ac_cv_func_getaddrinfo = yes; then
- AC_DEFINE(HAVE_GETADDRINFO, 1, [Whether getaddrinfo is available])
-fi
-])dnl
-
-AC_CHECK_GETADDRINFO_WITH_INCLUDES
-
-AC_FUNC_FORK
-AC_CHECK_FUNCS(isblank srandom random sleep)
-AC_CHECK_DECLS([in6addr_any],,,[AC_INCLUDES_DEFAULT
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#ifdef HAVE_NETINET_IGMP_H
-#include <netinet/igmp.h>
-#endif
-])
-
-# check for ldns
-AC_ARG_WITH(ldns,
- AC_HELP_STRING([--with-ldns=PATH specify prefix of path of ldns library to use])
- ,
- [
- specialldnsdir="$withval"
- CPPFLAGS="$CPPFLAGS -I$withval/include"
- LDFLAGS="-L$withval -L$withval/lib $LDFLAGS"
- LDNSDIR="$withval"
- ]
-)
-
-# check for ldns development source tree
-AC_MSG_CHECKING([for ldns devel source])
-ldns_dev_dir=..
-if test -f $ldns_dev_dir/ldns/util.h && \
- grep LDNS_VERSION $ldns_dev_dir/ldns/util.h >/dev/null; then
- ldns_version=`grep LDNS_VERSION $ldns_dev_dir/ldns/util.h | sed -e 's/^.*"\(.*\)".*$/\1/'`
- AC_MSG_RESULT([using $ldns_dev_dir with $ldns_version])
- CPPFLAGS="$CPPFLAGS -I$ldns_dev_dir/include"
- LDFLAGS="-L$ldns_dev_dir -L$ldns_dev_dir/lib $LDFLAGS"
- LIBS="$LIBS -lldns"
- AC_DEFINE(HAVE_LIBLDNS, 1, [If the ldns library is available.])
- LDNSDIR="$ldns_dev_dir"
-else
- AC_MSG_RESULT([no])
- AC_CHECK_LIB(ldns, ldns_rr_new,, [
- AC_MSG_ERROR([Can't find ldns library])dnl'
- ]
- )
-fi
-
-AC_SUBST(LDNSDIR)
-
-AC_ARG_WITH(trust-anchor, AC_HELP_STRING([--with-trust-anchor=KEYFILE], [Default location of the trust anchor file for drill and ldns-dane. [default=SYSCONFDIR/unbound/root.key]]), [
- LDNS_TRUST_ANCHOR_FILE="$withval"
-],[
- if test "x$LDNS_TRUST_ANCHOR_FILE" = "x"; then
- if test "x$sysconfdir" = 'x${prefix}/etc' ; then
- if test "x$prefix" = 'xNONE' ; then
- LDNS_TRUST_ANCHOR_FILE="/etc/unbound/root.key"
- else
- LDNS_TRUST_ANCHOR_FILE="${prefix}/etc/unbound/root.key"
- fi
- else
- LDNS_TRUST_ANCHOR_FILE="${sysconfdir}/unbound/root.key"
- fi
- fi
-])
-AC_DEFINE_UNQUOTED([LDNS_TRUST_ANCHOR_FILE], ["$LDNS_TRUST_ANCHOR_FILE"], [Default trust anchor file])
-AC_SUBST(LDNS_TRUST_ANCHOR_FILE)
-AC_MSG_NOTICE([Default trust anchor: $LDNS_TRUST_ANCHOR_FILE])
-
-AC_ARG_WITH(ca-file, AC_HELP_STRING([--with-ca-file=CAFILE], [File containing CA certificates for ldns-dane]), [
- AC_DEFINE([HAVE_DANE_CA_FILE], [1], [Is a CAFILE given at configure time])
- AC_DEFINE_UNQUOTED([LDNS_DANE_CA_FILE], ["$withval"], [Is a CAFILE given at configure time])
- AC_MSG_NOTICE([Using CAfile: $withval])
- AC_SUBST(DEFAULT_CAFILE, ["Default is $withval"])
-],[
- AC_DEFINE([HAVE_DANE_CA_FILE], [0], [Is a CAFILE given at configure time])
- AC_SUBST(DEFAULT_CAFILE, [])
-])
-
-AC_ARG_WITH(ca-path, AC_HELP_STRING([--with-ca-path=CAPATH], [Directory containing CA certificate files for ldns-dane]), [
- AC_DEFINE([HAVE_DANE_CA_PATH], [1], [Is a CAPATH given at configure time])
- AC_DEFINE_UNQUOTED([LDNS_DANE_CA_PATH], ["$withval"], [Is a CAPATH given at configure time])
- AC_MSG_NOTICE([Using CApath: $withval])
- AC_SUBST(DEFAULT_CAPATH, ["Default is $withval"])
-],[
- AC_DEFINE([HAVE_DANE_CA_PATH], [0], [Is a CAPATH given at configure time])
- AC_SUBST(DEFAULT_CAPATH, [])
-])
-
-AH_BOTTOM([
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <assert.h>
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-
-#ifdef HAVE_PCAP_H
-#include <pcap.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-
-#ifdef HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <netinet/if_ether.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#define USE_WINSOCK 1
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-#ifndef HAVE_GETADDRINFO
-#include <fake-rfc2553.h>
-#endif
-
-#ifndef HAVE_RANDOM
-/* random can be replaced by rand for ldnsexamples */
-#define random rand
-#endif
-
-#ifndef HAVE_SRANDOM
-/* srandom can be replaced by srand for ldnsexamples */
-#define srandom srand
-#endif
-
-extern char *optarg;
-extern int optind, opterr;
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifdef S_SPLINT_S
-#define FD_ZERO(a) /* a */
-#define FD_SET(a,b) /* a, b */
-#endif
-])
-
-AC_CONFIG_FILES([Makefile ldns-dane.1 ldns-verify-zone.1])
-AC_CONFIG_HEADER([config.h])
-AC_OUTPUT
diff --git a/examples/ldns-compare-zones.1 b/examples/ldns-compare-zones.1
index f299bb229eb8..5a4a579fb55d 100644
--- a/examples/ldns-compare-zones.1
+++ b/examples/ldns-compare-zones.1
@@ -4,6 +4,8 @@ ldns-compare-zones \- read and compare two zonefiles and print differences
.SH SYNOPSIS
.B ldns-compare-zones
.IR [-c]
+.IR [-U]
+.IR [-u]
.IR [-i]
.IR [-d]
.IR [-z]
@@ -13,9 +15,12 @@ ldns-compare-zones \- read and compare two zonefiles and print differences
.SH DESCRIPTION
\fBldns-compare-zones\fR reads two DNS zone files and prints number of differences.
.nf
-Output is formated to:
+Output is formatted to:
+NUM_INS \-NUM_DEL ~NUM_CHG
+Except with the \fI-U\fR or \fI-u\fR option. Then the output is formatted to:
+ +NUM_INS \-NUM_DEL ~NUM_CHG =NUM_EQ
+
.fi
The major comparison is based on the owner name. If an owner name is present in zonefile 1, but not in zonefile 2, the resource records with this owner name are considered deleted, and counted as NUM_DEL. If an owner name is present in zonefile 2, but not in zonefile 1, the resource records with this owner name are considered inserted, and counted as NUM_INS. If an owner name is present in both, but there is a difference in the amount or content of the records, these are considered changed, and counted as NUM_CHG.
.SH OPTIONS
@@ -23,6 +28,12 @@ The major comparison is based on the owner name. If an owner name is present in
\fB-c\fR
Print resource records whose owner names are in both zone files, but with different resource records. (a.k.a. changed)
.TP
+\fB-U\fR
+From resource records whose owner names are in both zone files, but with different resource records, print the unchanged records too (a.k.a. changed++).
+.TP
+\fB-u\fR
+Print resource records whose owner names are in both zone files, and which resource records are the same. (a.k.a. unchanged)
+.TP
\fB-i\fR
Print resource records whose owner names are present only in ZONEFILE2 (a.k.a. inserted)
.TP
@@ -30,8 +41,8 @@ Print resource records whose owner names are present only in ZONEFILE2 (a.k.a. i
Print resource records whose owner names are present only in ZONEFILE1 (a.k.a. deleted)
.TP
\fB-a\fR
-Print all changes. Specifying this option is the same as specifying \-c \-i
-amd \-d.
+Print all changes (except unchanged). Specifying this option is the same as specifying \-c \-i
+and \-d.
.TP
\fB-z\fR
Suppress zone sorting; this option is not recommended; it can cause records
diff --git a/examples/ldns-compare-zones.c b/examples/ldns-compare-zones.c
index 514bcb258d84..750a8455aec5 100644
--- a/examples/ldns-compare-zones.c
+++ b/examples/ldns-compare-zones.c
@@ -21,15 +21,18 @@
#define OP_INS '+'
#define OP_DEL '-'
#define OP_CHG '~'
+#define OP_EQ '='
static void
usage(char *prog)
{
- printf("Usage: %s [-v] [-i] [-d] [-c] [-s] [-e] "
+ printf("Usage: %s [-v] [-i] [-d] [-c] [-u] [-s] [-e] "
"<zonefile1> <zonefile2>\n", prog);
printf(" -i - print inserted\n");
printf(" -d - print deleted\n");
printf(" -c - print changed\n");
+ printf(" -u - print unchanged\n");
+ printf(" -U - print unchanged records in changed names\n");
printf(" -a - print all differences (-i -d -c)\n");
printf(" -s - do not exclude SOA record from comparison\n");
printf(" -z - do not sort zones\n");
@@ -46,19 +49,22 @@ main(int argc, char **argv)
ldns_zone *z1, *z2;
ldns_status s;
size_t i , j;
+ size_t k , l;
+ size_t nc1 , nc2;
ldns_rr_list *rrl1, *rrl2;
int rr_cmp, rr_chg = 0;
ldns_rr *rr1 = NULL, *rr2 = NULL, *rrx = NULL;
int line_nr1 = 0, line_nr2 = 0;
size_t rrc1 , rrc2;
- size_t num_ins = 0, num_del = 0, num_chg = 0;
+ size_t num_ins = 0, num_del = 0, num_chg = 0, num_eq = 0;
int c;
- bool opt_deleted = false, opt_inserted = false, opt_changed = false;
+ bool opt_deleted = false, opt_inserted = false;
+ bool opt_changed = false, opt_unchanged = false, opt_Unchanged = false;
bool sort = true, inc_soa = false;
bool opt_exit_status = false;
char op = 0;
- while ((c = getopt(argc, argv, "ahvdicesz")) != -1) {
+ while ((c = getopt(argc, argv, "ahvdicuUesz")) != -1) {
switch (c) {
case 'h':
usage(argv[0]);
@@ -89,6 +95,17 @@ main(int argc, char **argv)
case 'c':
opt_changed = true;
break;
+
+ case 'u':
+ opt_unchanged = true;
+ opt_Unchanged = true;
+ break;
+
+ case 'U':
+ opt_Unchanged = true;
+ opt_changed = true;
+ break;
+
case 'a':
opt_deleted = true;
opt_inserted = true;
@@ -101,7 +118,6 @@ main(int argc, char **argv)
argv += optind;
if (argc != 2) {
- argc -= optind;
argv -= optind;
usage(argv[0]);
exit(EXIT_FAILURE);
@@ -117,7 +133,7 @@ main(int argc, char **argv)
LDNS_RR_CLASS_IN, &line_nr1);
if (s != LDNS_STATUS_OK) {
fclose(fp1);
- fprintf(stderr, "%s: %s at %d\n",
+ fprintf(stderr, "%s: %s at line %d\n",
fn1,
ldns_get_errorstr_by_id(s),
line_nr1);
@@ -137,7 +153,7 @@ main(int argc, char **argv)
if (s != LDNS_STATUS_OK) {
ldns_zone_deep_free(z1);
fclose(fp2);
- fprintf(stderr, "%s: %s at %d\n",
+ fprintf(stderr, "%s: %s at line %d\n",
fn2,
ldns_get_errorstr_by_id(s),
line_nr2);
@@ -198,12 +214,6 @@ main(int argc, char **argv)
rr2 = ldns_rr_list_rr(rrl2, j);
rr_cmp = ldns_rr_compare(rr1, rr2);
- /* Completely skip if the rrs are equal */
- if (rr_cmp == 0) {
- i++;
- j++;
- continue;
- }
rr_chg = ldns_dname_compare(ldns_rr_owner(rr1),
ldns_rr_owner(rr2));
} else if (i >= rrc1) {
@@ -222,7 +232,6 @@ main(int argc, char **argv)
rr_chg = rr_cmp = -1;
}
if (rr_cmp < 0) {
- i++;
if ((rrx != NULL) && (ldns_dname_compare(ldns_rr_owner(rr1),
ldns_rr_owner(rrx)
) != 0)) {
@@ -244,8 +253,8 @@ main(int argc, char **argv)
printf("%c-", op);
ldns_rr_print(stdout, rr1);
}
+ i++;
} else if (rr_cmp > 0) {
- j++;
if ((rrx != NULL) && (ldns_dname_compare(ldns_rr_owner(rr2),
ldns_rr_owner(rrx)
) != 0)) {
@@ -267,16 +276,78 @@ main(int argc, char **argv)
printf("%c+", op);
ldns_rr_print(stdout, rr2);
}
+ j++;
+ } else {
+ if ((rrx != NULL) && (ldns_dname_compare(ldns_rr_owner(rr1),
+ ldns_rr_owner(rrx)
+ ) != 0)) {
+ rrx = NULL;
+ }
+ if (rrx == NULL) {
+ rrx = rr1;
+
+ /* Are all rrs with this name equal? */
+ for ( k = i + 1
+ ; k < rrc1 &&
+ ldns_dname_compare(ldns_rr_owner(rr1),
+ ldns_rr_owner(ldns_rr_list_rr(rrl1, k))) == 0
+ ; k++);
+
+
+ for ( l = j + 1
+ ; l < rrc2 &&
+ ldns_dname_compare(ldns_rr_owner(rr2),
+ ldns_rr_owner(ldns_rr_list_rr(rrl2, l))) == 0
+ ; l++);
+
+ if ((k - i) != (l - j)) {
+ op = OP_CHG;
+ num_chg++;
+ } else {
+ nc1 = k - i;
+ nc2 = l - j;
+ for ( k = i + 1, l = j + 1
+ ; (k - i) < nc1 && (l - j) < nc2 &&
+ ldns_rr_compare(ldns_rr_list_rr(rrl1, k),
+ ldns_rr_list_rr(rrl2, l)) == 0
+ ; k++, l++);
+ if ((k - i) < nc1) {
+ op = OP_CHG;
+ num_chg++;
+ } else {
+ op = OP_EQ;
+ num_eq++;
+ }
+ }
+ }
+ if (((op == OP_EQ ) && opt_unchanged) ||
+ ((op == OP_CHG) && opt_Unchanged && opt_changed)) {
+ printf("%c=", op);
+ ldns_rr_print(stdout, rr1);
+ }
+ i++;
+ j++;
}
}
- printf("\t%c%u\t%c%u\t%c%u\n",
- OP_INS,
- (unsigned int) num_ins,
- OP_DEL,
- (unsigned int) num_del,
- OP_CHG,
- (unsigned int) num_chg);
+ if (opt_unchanged || opt_Unchanged)
+ printf("\t%c%u\t%c%u\t%c%u\t%c%u\n",
+ OP_INS,
+ (unsigned int) num_ins,
+ OP_DEL,
+ (unsigned int) num_del,
+ OP_CHG,
+ (unsigned int) num_chg,
+ OP_EQ,
+ (unsigned int) num_eq);
+ else
+ printf("\t%c%u\t%c%u\t%c%u\n",
+ OP_INS,
+ (unsigned int) num_ins,
+ OP_DEL,
+ (unsigned int) num_del,
+ OP_CHG,
+ (unsigned int) num_chg);
/* Free resources */
if(inc_soa) {
diff --git a/examples/ldns-dane.c b/examples/ldns-dane.c
index f22367595206..58bdc2f78832 100644
--- a/examples/ldns-dane.c
+++ b/examples/ldns-dane.c
@@ -33,7 +33,6 @@
#include <fcntl.h>
#include <ldns/ldns.h>
-#include <errno.h>
#ifdef USE_DANE
#ifdef HAVE_SSL
@@ -61,7 +60,7 @@
static void
print_usage(const char* progname)
{
-#ifdef USE_DANE_VERIY
+#ifdef USE_DANE_VERIFY
printf("Usage: %s [OPTIONS] verify <name> <port>\n", progname);
printf(" or: %s [OPTIONS] -t <tlsafile> verify\n", progname);
printf("\n\tVerify the TLS connection at <name>:<port> or"
@@ -444,7 +443,7 @@ rr_list_filter_rr_type(ldns_rr_list* l, ldns_rr_type t)
* types "Service certificate constraint" are replaced with
* "Domain-issued certificate".
*
- * This to check what would happen if PKIX validation was successfull always.
+ * This to check what would happen if PKIX validation was successful always.
*/
static ldns_rr_list*
dane_no_pkix_transform(const ldns_rr_list* tlas)
@@ -1140,6 +1139,15 @@ dane_verify(ldns_rr_list* tlsas, ldns_rdf* address,
}
#endif /* defined(USE_DANE_VERIFY) && OPENSSL_VERSION_NUMBER < 0x10100000 */
+#if OPENSSL_VERSION_NUMBER >= 0x10100000 && ! defined(HAVE_LIBRESSL)
+static int _ldns_tls_verify_always_ok(int ok, X509_STORE_CTX *ctx)
+{
+ (void)ok;
+ (void)ctx;
+ return 1;
+}
+#endif
+
/**
* Return either an A or AAAA rdf, based on the given
* string. If it it not a valid ip address, return null.
@@ -1167,7 +1175,9 @@ main(int argc, char* const* argv)
#if OPENSSL_VERSION_NUMBER >= 0x10100000 && ! defined(HAVE_LIBRESSL)
size_t j, usable_tlsas = 0;
+# ifdef USE_DANE_VERIFY
X509_STORE_CTX *store_ctx = NULL;
+# endif /* USE_DANE_VERIFY */
#endif /* OPENSSL_VERSION_NUMBER >= 0x10100000 */
bool print_tlsa_as_type52 = false;
@@ -1201,9 +1211,9 @@ main(int argc, char* const* argv)
int ai_family = AF_UNSPEC;
int transport = LDNS_DANE_TRANSPORT_TCP;
- char* name_str = NULL; /* supress uninitialized warning */
+ char* name_str = NULL; /* suppress uninitialized warning */
ldns_rdf* name;
- uint16_t port = 0; /* supress uninitialized warning */
+ uint16_t port = 0; /* suppress uninitialized warning */
ldns_resolver* res = NULL;
ldns_rdf* nameserver_rdf = NULL;
@@ -1672,9 +1682,11 @@ main(int argc, char* const* argv)
assert(0);
}
- /* ssl inititalize */
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+ /* ssl initialize */
SSL_load_error_strings();
SSL_library_init();
+#endif
/* ssl load validation store */
if (! assume_pkix_validity || CAfile || CApath) {
@@ -1695,6 +1707,26 @@ main(int argc, char* const* argv)
if (ctx && SSL_CTX_dane_enable(ctx) <= 0) {
ssl_err("could not SSL_CTX_dane_enable");
}
+
+ /* Use TLSv1.0 or above for connection. */
+ long flags = 0;
+# ifdef SSL_OP_NO_SSLv2
+ flags |= SSL_OP_NO_SSLv2;
+# endif
+# ifdef SSL_OP_NO_SSLv3
+ flags |= SSL_OP_NO_SSLv3;
+# endif
+# ifdef SSL_OP_NO_COMPRESSION
+ flags |= SSL_OP_NO_COMPRESSION;
+# endif
+ SSL_CTX_set_options(ctx, flags);
+
+ if (CAfile || CApath) {
+ if (!SSL_CTX_load_verify_locations(ctx, CAfile, CApath))
+ ssl_err("could not set verify locations\n");
+
+ } else if (!SSL_CTX_set_default_verify_paths(ctx))
+ ssl_err("could not set default verify paths\n");
#endif
if (! ctx) {
ssl_err("could not SSL_CTX_new");
@@ -1784,6 +1816,7 @@ main(int argc, char* const* argv)
if (!usable_tlsas) {
fprintf(stderr, "No usable TLSA records were found.\n"
"PKIX validation without DANE will be performed.\n");
+ exit_success = no_tlsas_exit_status;
}
if (!(store_ctx = X509_STORE_CTX_new())) {
ssl_err("could not SSL_new");
@@ -1870,7 +1903,7 @@ main(int argc, char* const* argv)
continue;
}
ret = SSL_dane_tlsa_add(ssl,
- ldns_rdf2native_int8(ldns_rr_rdf(tlsa_rr, 0)),
+ ldns_rdf2native_int8(ldns_rr_rdf(tlsa_rr, 0)) | (assume_pkix_validity ? 2 : 0),
ldns_rdf2native_int8(ldns_rr_rdf(tlsa_rr, 1)),
ldns_rdf2native_int8(ldns_rr_rdf(tlsa_rr, 2)),
ldns_rdf_data(ldns_rr_rdf(tlsa_rr, 3)),
@@ -1889,6 +1922,10 @@ main(int argc, char* const* argv)
if (!usable_tlsas) {
fprintf(stderr, "No usable TLSA records were found.\n"
"PKIX validation without DANE will be performed.\n");
+
+ exit_success = no_tlsas_exit_status;
+ if (assume_pkix_validity)
+ SSL_set_verify(ssl, SSL_VERIFY_PEER, _ldns_tls_verify_always_ok);
}
}
#endif /* OPENSSL_VERSION_NUMBER >= 0x10100000 */
@@ -1951,7 +1988,7 @@ main(int argc, char* const* argv)
default: break; /* suppress warning */
}
- while (SSL_shutdown(ssl) == 0);
+ (void)SSL_shutdown(ssl);
SSL_free(ssl);
} /* end for all addresses */
} /* end No certification file */
diff --git a/examples/ldns-dpa.1 b/examples/ldns-dpa.1
index b6688ae4c73a..6ff9eb323d4e 100644
--- a/examples/ldns-dpa.1
+++ b/examples/ldns-dpa.1
@@ -9,7 +9,7 @@ dpa \- DNS Packet Analyzer. Analyze DNS packets in ip trace files
.IR TRACEFILE
.SH DESCRIPTION
-\fBdpa\fR is used to analyze dns packets in trace files. It has 3 main options: count, filter, and count uniques (i.e. count all different occurences).
+\fBdpa\fR is used to analyze dns packets in trace files. It has 3 main options: count, filter, and count uniques (i.e. count all different occurrences).
.SH OPTIONS
.TP
@@ -54,7 +54,7 @@ If no \-f was given, evaluate all correct dns packets.
.TP
\fB-u\fR \fImatchnamelist\fR
-Count every occurence of every value of the matchname (for instance, count all packetsizes, see EXAMPLES in ldns-dpa(1) ).
+Count every occurrence of every value of the matchname (for instance, count all packetsizes, see EXAMPLES in ldns-dpa(1) ).
.TP
\fB-ua\fR
@@ -112,7 +112,7 @@ See the \-s option for possible matchnames, operators and values.
.TP
ldns-dpa \-u packetsize \-p test.tr
-Count all different packetsizes in test.tr and show the precentages.
+Count all different packetsizes in test.tr and show the percentages.
.TP
ldns-dpa \-f "edns=1&qr=0" \-of edns.tr test.tr
diff --git a/examples/ldns-dpa.c b/examples/ldns-dpa.c
index 356b7eea759d..46d8f9ad7baa 100644
--- a/examples/ldns-dpa.c
+++ b/examples/ldns-dpa.c
@@ -987,10 +987,10 @@ match_str(type_operator operator,
valuedup = strdup(value);
mvaluedup = strdup(mvalue);
for (i = 0; i < strlen(valuedup); i++) {
- valuedup[i] = tolower(valuedup[i]);
+ valuedup[i] = tolower((unsigned char)valuedup[i]);
}
for (i = 0; i < strlen(mvaluedup); i++) {
- mvaluedup[i] = tolower(mvaluedup[i]);
+ mvaluedup[i] = tolower((unsigned char)mvaluedup[i]);
}
result = strstr(valuedup, mvaluedup) != 0;
free(valuedup);
@@ -1650,7 +1650,7 @@ parse_match_expression(char *string)
match_expression *expr;
size_t i,j;
size_t leftstart, leftend = 0;
- char *left_str, *op, *val;
+ char *left_str, *op = NULL, *val;
match_table *mt;
match_operation *mo = NULL;
const type_operators *tos;
@@ -1658,7 +1658,7 @@ parse_match_expression(char *string)
ldns_lookup_table *lt = NULL;
/* remove whitespace */
- char *str = malloc(strlen(string) + 1);
+ char *str = calloc(1, strlen(string) + 1);
j = 0;
for (i = 0; i < strlen(string); i++) {
@@ -1740,6 +1740,7 @@ parse_match_expression(char *string)
free(left_str);
if (i >= strlen(str)-1) {
result = expr->left;
+ free_match_expression(expr);
goto done;
}
} else if (str[i] == ')') {
@@ -1784,6 +1785,8 @@ parse_match_expression(char *string)
if (i > strlen(str)) {
printf("parse error no right hand side: %s\n", str);
result = NULL;
+ if (op)
+ free(op);
goto done;
}
}
@@ -1794,6 +1797,8 @@ parse_match_expression(char *string)
mt = get_match_by_name(left_str);
if (!mt) {
printf("parse error: unknown match name: %s\n", left_str);
+ if (op)
+ free(op);
result = NULL;
goto done;
} else {
@@ -1801,6 +1806,8 @@ parse_match_expression(char *string)
tos = get_type_operators(mt->type);
for (j = 0; j < tos->operator_count; j++) {
if (get_op_id(op) == tos->operators[j]) {
+ if (mo)
+ free(mo);
mo = malloc(sizeof(match_operation));
mo->id = mt->id;
mo->operator = get_op_id(op);
@@ -1874,6 +1881,8 @@ parse_match_expression(char *string)
if (!mo) {
printf("parse error: operator %s not allowed for match %s\n", op, left_str);
result = NULL;
+ if (op)
+ free(op);
goto done;
}
}
@@ -1914,7 +1923,7 @@ usage(FILE *output)
fprintf(output, "\t-u <matchnamelist>:\tCount all occurrences of matchname\n");
fprintf(output, "\t-ua:\t\tShow average value of every -u matchname\n");
fprintf(output, "\t-uac:\t\tShow average count of every -u matchname\n");
- fprintf(output, "\t-um <number>:\tOnly show -u results that occured more than number times\n");
+ fprintf(output, "\t-um <number>:\tOnly show -u results that occurred more than number times\n");
fprintf(output, "\t-v <level>:\tbe more verbose\n");
fprintf(output, "\t-notip <file>:\tDump pcap packets that were not recognized as\n\t\t\tIP packets to file\n");
fprintf(output, "\t-baddns <file>:\tDump mangled dns packets to file\n");
@@ -2040,7 +2049,7 @@ handle_ether_packet(const u_char *data, struct pcap_pkthdr cur_hdr, match_counte
int ip_hdr_size;
uint8_t protocol;
size_t data_offset = 0;
- ldns_rdf *src_addr, *dst_addr;
+ ldns_rdf *src_addr = NULL, *dst_addr = NULL;
uint8_t *ap;
char *astr;
bpf_u_int32 len = cur_hdr.caplen;
@@ -2171,16 +2180,16 @@ printf("timeval: %u ; %u\n", cur_hdr.ts.tv_sec, cur_hdr.ts.tv_usec);
if (ldns_str2rdf_a(&src_addr, astr) == LDNS_STATUS_OK) {
}
- free(astr);
}
+ free(astr);
ap = (uint8_t *) &(iptr->ip_dst);
astr = malloc(INET_ADDRSTRLEN);
if (inet_ntop(AF_INET, ap, astr, INET_ADDRSTRLEN)) {
if (ldns_str2rdf_a(&dst_addr, astr) == LDNS_STATUS_OK) {
}
- free(astr);
}
+ free(astr);
ip_hdr_size = (int) iptr->ip_hl * 4;
protocol = (uint8_t) iptr->ip_p;
@@ -2254,6 +2263,8 @@ printf("timeval: %u ; %u\n", cur_hdr.ts.tv_sec, cur_hdr.ts.tv_usec);
ldns_pkt_free(pkt);
ldns_rdf_deep_free(src_addr);
ldns_rdf_deep_free(dst_addr);
+ if (newdata && newdata != data)
+ free((void *)newdata);
return 0;
}
} else {
@@ -2292,6 +2303,10 @@ printf("timeval: %u ; %u\n", cur_hdr.ts.tv_sec, cur_hdr.ts.tv_usec);
/* tcp packets are skipped */
tcp_packets++;
}
+ if (newdata && newdata != data) {
+ free((void *)newdata);
+ newdata = NULL;
+ }
/* don't have a define for ethertype ipv6 */
} else if (ntohs (eptr->ether_type) == ETHERTYPE_IPV6) {
/*printf("IPv6!\n");*/
@@ -2312,16 +2327,16 @@ printf("timeval: %u ; %u\n", cur_hdr.ts.tv_sec, cur_hdr.ts.tv_usec);
if (ldns_str2rdf_aaaa(&src_addr, astr) == LDNS_STATUS_OK) {
}
- free(astr);
}
+ free(astr);
ap = (uint8_t *) &(ip6_hdr->ip6_dst);
astr = malloc(INET6_ADDRSTRLEN);
if (inet_ntop(AF_INET6, ap, astr, INET6_ADDRSTRLEN)) {
if (ldns_str2rdf_aaaa(&dst_addr, astr) == LDNS_STATUS_OK) {
}
- free(astr);
}
+ free(astr);
ip_hdr_size = IP6_HEADER_LENGTH;
protocol = (uint8_t) ip6_hdr->ip6_ctlun.ip6_un1.ip6_un1_nxt;
@@ -2458,10 +2473,10 @@ parse_match_list(match_counters *counters, char *string)
strncpy(substring, &string[lastpos], i - lastpos + 1);
substring[i - lastpos] = '\0';
expr = parse_match_expression(substring);
+ free(substring);
if (!expr) {
return false;
}
- free(substring);
/*
if (expr->op != MATCH_EXPR_LEAF) {
fprintf(stderr, "Matchlist can only contain <match>, not a logic expression\n");
@@ -2480,6 +2495,7 @@ parse_match_list(match_counters *counters, char *string)
if (!expr) {
fprintf(stderr, "Bad match: %s\n", substring);
+ free(substring);
return false;
}
free(substring);
@@ -2501,7 +2517,7 @@ parse_uniques(match_id ids[], size_t *count, char *string)
match_table *mt;
/*printf("Parsing unique counts: '%s'\n", string);*/
- str = malloc(strlen(string) + 1);
+ str = calloc(1, strlen(string) + 1);
j = 0;
for (i = 0; i < strlen(string); i++) {
if (!isspace((unsigned char)string[i])) {
@@ -2514,7 +2530,10 @@ parse_uniques(match_id ids[], size_t *count, char *string)
lastpos = 0;
for (i = 0; i <= strlen(str); i++) {
if (str[i] == ',' || i >= strlen(str)) {
- strpart = malloc(i - lastpos + 1);
+ if (!(strpart = malloc(i - lastpos + 1))) {
+ free(str);
+ return false;
+ }
strncpy(strpart, &str[lastpos], i - lastpos);
strpart[i - lastpos] = '\0';
if ((mt = get_match_by_name(strpart))) {
@@ -2522,6 +2541,8 @@ parse_uniques(match_id ids[], size_t *count, char *string)
*count = *count + 1;
} else {
printf("Error parsing match list; unknown match name: %s\n", strpart);
+ free(strpart);
+ free(str);
return false;
}
free(strpart);
@@ -2540,7 +2561,6 @@ parse_uniques(match_id ids[], size_t *count, char *string)
return false;
}
free(strpart);
- lastpos = i + 1;
}
free(str);
return true;
diff --git a/examples/ldns-gen-zone.c b/examples/ldns-gen-zone.c
index bd7111a016bb..9050f67bf44f 100644
--- a/examples/ldns-gen-zone.c
+++ b/examples/ldns-gen-zone.c
@@ -62,13 +62,10 @@ insert_ds(ldns_rdf *dsowner, uint32_t ttl)
* 2147483647 or 0x7FFFFFFF
*/
snprintf(digeststr, 65,
- "%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x",
+ "%08x%08x%08x%08x%08x%08x%08x%08x",
(unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX,
(unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX,
- (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX,
- (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX,
- (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX,
- (unsigned) rand()%RAND_MAX);
+ (unsigned) rand()%RAND_MAX, (unsigned) rand()%RAND_MAX);
dsownerstr = ldns_rdf2str(dsowner);
fprintf(stdout, "%s\t%u\tIN\tDS\t%d %d %d %s\n", dsownerstr, (unsigned) ttl, keytag, ALGO, DIGESTTYPE, digeststr);
}
@@ -172,7 +169,7 @@ main(int argc, char **argv) {
}
s = ldns_zone_new_frm_fp_l(&z, fp, origin, 0, LDNS_RR_CLASS_IN, &line_nr);
if (s != LDNS_STATUS_OK) {
- fprintf(stderr, "%s at %d\n", ldns_get_errorstr_by_id(s), line_nr);
+ fprintf(stderr, "%s at line %d\n", ldns_get_errorstr_by_id(s), line_nr);
exit(EXIT_FAILURE);
}
if (!ldns_zone_soa(z)) {
diff --git a/examples/ldns-key2ds.c b/examples/ldns-key2ds.c
index be1f8c654ac1..898755dd3944 100644
--- a/examples/ldns-key2ds.c
+++ b/examples/ldns-key2ds.c
@@ -93,7 +93,6 @@ main(int argc, char *argv[])
ldns_status result = LDNS_STATUS_OK;
int sep_only = 1;
- alg = 0;
h = LDNS_SHA1;
argv++, argc--;
diff --git a/examples/ldns-keyfetcher.c b/examples/ldns-keyfetcher.c
index 10a47ddc4dd9..2f48e7afd83a 100644
--- a/examples/ldns-keyfetcher.c
+++ b/examples/ldns-keyfetcher.c
@@ -1,6 +1,6 @@
/*
* ldns-keyfetcher retrieves the DNSKEYS for a certain domain
- * It traces the authoritatives nameservers down from the root
+ * It traces the authoritative nameservers down from the root
* And uses TCP, to minimize spoofing danger.
*
* (c) NLnet Labs, 2006 - 2008
@@ -74,7 +74,7 @@ retrieve_dnskeys(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
}
/* transfer some properties of local_res to res,
- * because they were given on the commandline */
+ * because they were given on the command line */
ldns_resolver_set_ip6(res,
ldns_resolver_ip6(local_res));
ldns_resolver_set_port(res,
@@ -143,7 +143,7 @@ retrieve_dnskeys(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
/* remove the old nameserver from the resolver */
while((pop = ldns_resolver_pop_nameserver(res))) { ldns_rdf_deep_free(pop); }
- /* also check for new_nss emptyness */
+ /* also check for new_nss emptiness */
if (!new_nss_aaaa && !new_nss_a) {
/*
@@ -447,6 +447,7 @@ retrieve_dnskeys(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
if (!p) {
fprintf(stderr, "no packet received\n");
+ LDNS_FREE(last_nameservers);
return NULL;
}
@@ -454,12 +455,14 @@ retrieve_dnskeys(ldns_resolver *local_res, ldns_rdf *name, ldns_rr_type t,
fprintf(stderr, "Error: nameserver at ");
ldns_rdf_print(stderr, last_nameservers[nss_i]);
fprintf(stderr, " not responding. Unable to check RRset here, aborting.\n");
+ LDNS_FREE(last_nameservers);
return NULL;
}
if (ldns_pkt_get_rcode(p) != LDNS_RCODE_NOERROR) {
printf("Error in packet:\n");
ldns_pkt_print(stdout, p);
+ LDNS_FREE(last_nameservers);
return NULL;
}
diff --git a/examples/ldns-keygen.1 b/examples/ldns-keygen.1
index 57603c7b3e8b..4bb9fec2dd70 100644
--- a/examples/ldns-keygen.1
+++ b/examples/ldns-keygen.1
@@ -44,6 +44,16 @@ Make ldns-keygen use this file to seed the random generator with. This will
default to /dev/random.
.TP
+\fB-s\fR
+ldns-keygen will create symbolic links named \fB.private\fR to
+the new generated private key, \fB.key\fR to the public DNSKEY
+and \fB.ds\fR to the file containing DS record data.
+
+.TP
+\fB-f\fR
+force symlinks to be overwritten if they exist.
+
+.TP
\fB-v\fR
Show the version and exit
diff --git a/examples/ldns-keygen.c b/examples/ldns-keygen.c
index 62b8d228eda6..2f690b698223 100644
--- a/examples/ldns-keygen.c
+++ b/examples/ldns-keygen.c
@@ -14,11 +14,12 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
+#include <unistd.h>
#ifdef HAVE_SSL
static void
usage(FILE *fp, char *prog) {
- fprintf(fp, "%s -a <algorithm> [-b bits] [-r /dev/random] [-v] domain\n",
+ fprintf(fp, "%s -a <algorithm> [-b bits] [-r /dev/random] [-s] [-f] [-v] domain\n",
prog);
fprintf(fp, " generate a new key pair for domain\n");
fprintf(fp, " -a <alg>\tuse the specified algorithm (-a list to");
@@ -27,6 +28,8 @@ usage(FILE *fp, char *prog) {
fprintf(fp, " -b <bits>\tspecify the keylength\n");
fprintf(fp, " -r <random>\tspecify a random device (defaults to /dev/random)\n");
fprintf(fp, "\t\tto seed the random generator with\n");
+ fprintf(fp, " -s\t\tcreate additional symlinks with constant names\n");
+ fprintf(fp, " -f\t\tforce override of existing symlinks\n");
fprintf(fp, " -v\t\tshow the version and exit\n");
fprintf(fp, " The following files will be created:\n");
fprintf(fp, " K<name>+<alg>+<id>.key\tPublic key in RR format\n");
@@ -47,6 +50,37 @@ show_algorithms(FILE *out)
}
}
+static int
+remove_symlink(const char *symlink_name)
+{
+ int result;
+
+ if ((result = unlink(symlink_name)) == -1) {
+ if (errno == ENOENT) {
+ /* it's OK if the link simply didn't exist */
+ result = 0;
+ } else {
+ /* error if unlink fail */
+ fprintf(stderr, "Can't delete symlink %s: %s\n", symlink_name, strerror(errno));
+ }
+ }
+ return result;
+}
+
+static int
+create_symlink(const char *symlink_destination, const char *symlink_name)
+{
+ int result = 0;
+
+ if (!symlink_name)
+ return result; /* no arg "-s" at all */
+
+ if ((result = symlink(symlink_destination, symlink_name)) == -1) {
+ fprintf(stderr, "Unable to create symlink %s -> %s: %s\n", symlink_name, symlink_destination, strerror(errno));
+ }
+ return result;
+}
+
int
main(int argc, char *argv[])
{
@@ -64,6 +98,8 @@ main(int argc, char *argv[])
FILE *random;
char *filename;
char *owner;
+ bool symlink_create;
+ bool symlink_override;
ldns_signing_algorithm algorithm;
ldns_rdf *domain;
@@ -75,8 +111,10 @@ main(int argc, char *argv[])
algorithm = 0;
random = NULL;
ksk = false; /* don't create a ksk per default */
+ symlink_create = false;
+ symlink_override = false;
- while ((c = getopt(argc, argv, "a:kb:r:v")) != -1) {
+ while ((c = getopt(argc, argv, "a:kb:r:sfv")) != -1) {
switch (c) {
case 'a':
if (algorithm != 0) {
@@ -112,6 +150,12 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
break;
+ case 's':
+ symlink_create = true;
+ break;
+ case 'f':
+ symlink_override = true;
+ break;
case 'v':
printf("DNSSEC key generator version %s (ldns version %s)\n", LDNS_VERSION, ldns_version());
exit(EXIT_SUCCESS);
@@ -148,6 +192,7 @@ main(int argc, char *argv[])
exit(1);
}
break;
+#ifdef USE_DSA
case LDNS_SIGN_DSA:
case LDNS_SIGN_DSA_NSEC3:
if (bits < 512 || bits > 1024) {
@@ -156,6 +201,7 @@ main(int argc, char *argv[])
exit(1);
}
break;
+#endif /* USE_DSA */
#ifdef USE_GOST
case LDNS_SIGN_ECC_GOST:
if(!ldns_key_EVP_load_gost_id()) {
@@ -303,6 +349,19 @@ main(int argc, char *argv[])
break;
}
+ /* maybe a symlinks should be removed */
+ if (symlink_create && symlink_override) {
+ if (remove_symlink(".key") != 0) {
+ exit(EXIT_FAILURE);
+ }
+ if (remove_symlink(".private") != 0) {
+ exit(EXIT_FAILURE);
+ }
+ if (remove_symlink(".ds") != 0) {
+ exit(EXIT_FAILURE);
+ }
+ }
+
/* print the public key RR to .key */
filename = LDNS_XMALLOC(char, strlen(owner) + 17);
snprintf(filename, strlen(owner) + 16, "K%s+%03u+%05u.key", owner, algorithm, (unsigned int) ldns_key_keytag(key));
@@ -321,6 +380,11 @@ main(int argc, char *argv[])
ldns_rr_print(file, pubkey);
ldns_rr_set_question(pubkey, false);
fclose(file);
+ if (symlink_create) {
+ if (create_symlink(filename, ".key") != 0) {
+ goto silentfail;
+ }
+ }
LDNS_FREE(filename);
}
@@ -340,6 +404,11 @@ main(int argc, char *argv[])
ldns_key_print(file, key);
fclose(file);
+ if (symlink_create) {
+ if (create_symlink(filename, ".private") != 0) {
+ goto silentfail;
+ }
+ }
LDNS_FREE(filename);
/* print the DS to .ds */
@@ -366,6 +435,11 @@ main(int argc, char *argv[])
ldns_rr_print(file, ds);
ldns_rr_set_question(ds, false);
fclose(file);
+ if (symlink_create) {
+ if (create_symlink(filename, ".ds") != 0) {
+ goto silentfail;
+ }
+ }
LDNS_FREE(filename);
}
}
@@ -379,6 +453,7 @@ main(int argc, char *argv[])
fail:
fprintf(stderr, "Unable to open %s: %s\n", filename, strerror(errno));
+silentfail:
ldns_key_deep_free(key);
free(owner);
ldns_rr_free(pubkey);
diff --git a/examples/ldns-notify.1 b/examples/ldns-notify.1
index 27266c1ce8f4..c7fbb6f70922 100644
--- a/examples/ldns-notify.1
+++ b/examples/ldns-notify.1
@@ -20,6 +20,10 @@ If a server already has that serial number it will disregard the message.
The zone that is updated.
.TP
+\fB-I address\fR
+Source IP to send query from.
+
+.TP
\fB-h\fR
Show usage and exit
@@ -36,9 +40,9 @@ Append a SOA record indicating the serial number of the updated zone.
Use port as destination port (default the DNS port 53) for the UDP packets.
.TP
-\fB-y key:data\fR
-Use the given TSIG key and base64-data to sign the NOTIFY. Uses the
-hmac-md5 algorithm.
+\fB-y key:data[:algo] \fR
+Use the given TSIG key and base64-data, and optionally an algorithm to sign
+the NOTIFY. The algorithm defaults to hmac-md5.sig-alg.reg.int.
.TP
\fB-d\fR
diff --git a/examples/ldns-notify.c b/examples/ldns-notify.c
index ee8d817411d8..bfd1238475ec 100644
--- a/examples/ldns-notify.c
+++ b/examples/ldns-notify.c
@@ -28,8 +28,11 @@ usage(void)
fprintf(stderr, "Ldns notify utility\n\n");
fprintf(stderr, " Supported options:\n");
fprintf(stderr, "\t-z zone\t\tThe zone\n");
+ fprintf(stderr, "\t-I <address>\tsource address to query from\n");
fprintf(stderr, "\t-s version\tSOA version number to include\n");
- fprintf(stderr, "\t-y key:data\tTSIG sign the query\n");
+ fprintf(stderr, "\t-y <name:key[:algo]>\tspecify named base64 tsig key"
+ ", and optional an\n\t\t\t"
+ "algorithm (defaults to hmac-md5.sig-alg.reg.int)\n");
fprintf(stderr, "\t-p port\t\tport to use to send to\n");
fprintf(stderr, "\t-v\t\tPrint version information\n");
fprintf(stderr, "\t-d\t\tPrint verbose debug information\n");
@@ -171,22 +174,23 @@ main(int argc, char **argv)
/* LDNS types */
ldns_pkt *notify;
ldns_rr *question;
- ldns_resolver *res;
ldns_rdf *ldns_zone_name = NULL;
ldns_status status;
const char *zone_name = NULL;
int include_soa = 0;
uint32_t soa_version = 0;
- ldns_tsig_credentials tsig_cred = {0,0,0};
int do_hexdump = 1;
uint8_t *wire = NULL;
size_t wiresize = 0;
const char *port = "53";
- char *keydata;
+ char *tsig_sep;
+ const char *tsig_name = NULL, *tsig_data = NULL, *tsig_algo = NULL;
+ int error;
+ struct addrinfo from_hints, *from0 = NULL;
srandom(time(NULL) ^ getpid());
- while ((c = getopt(argc, argv, "vhdp:r:s:y:z:")) != -1) {
+ while ((c = getopt(argc, argv, "vhdp:r:s:y:z:I:")) != -1) {
switch (c) {
case 'd':
verbose++;
@@ -202,18 +206,52 @@ main(int argc, char **argv)
soa_version = (uint32_t)atoi(optarg);
break;
case 'y':
- tsig_cred.algorithm = (char*)"hmac-md5.sig-alg.reg.int.";
- tsig_cred.keyname = optarg;
- keydata = strchr(optarg, ':');
- if (keydata == NULL) {
+ if (!(tsig_sep = strchr(optarg, ':'))) {
printf("TSIG argument is not in form "
- "key:data: %s\n", optarg);
+ "<name:key[:algo]> %s\n", optarg);
exit(1);
}
- *keydata++ = '\0';
- tsig_cred.keydata = keydata;
- printf("Sign with %s : %s\n", tsig_cred.keyname,
- tsig_cred.keydata);
+ tsig_name = optarg;
+ *tsig_sep++ = '\0';
+ tsig_data = tsig_sep;
+ if ((tsig_sep = strchr(tsig_sep, ':'))) {
+ *tsig_sep++ = '\0';
+ tsig_algo = tsig_sep;
+ } else {
+ tsig_algo = "hmac-md5.sig-alg.reg.int.";
+ }
+ /* With dig TSIG keys are also specified with -y,
+ * but format with drill is: -y <name:key[:algo]>
+ * and with dig: -y [hmac:]name:key
+ *
+ * When we detect an unknown tsig algorithm in algo,
+ * but a known algorithm in name, we cane assume dig
+ * order was used.
+ *
+ * Following if statement is to anticipate and correct
+ * dig order
+ */
+ if (strcasecmp(tsig_algo, "hmac-md5.sig-alg.reg.int")&&
+ strcasecmp(tsig_algo, "hmac-md5") &&
+ strcasecmp(tsig_algo, "hmac-sha1") &&
+ strcasecmp(tsig_algo, "hmac-sha256") &&
+ strcasecmp(tsig_algo, "hmac-sha384") &&
+ strcasecmp(tsig_algo, "hmac-sha512") &&
+ ! (strcasecmp(tsig_name, "hmac-md5.sig-alg.reg.int")
+ && strcasecmp(tsig_name, "hmac-md5")
+ && strcasecmp(tsig_name, "hmac-sha1")
+ && strcasecmp(tsig_name, "hmac-sha256")
+ && strcasecmp(tsig_name, "hmac-sha384")
+ && strcasecmp(tsig_name, "hmac-sha512"))) {
+
+ /* Roll options */
+ const char *tmp_tsig_algo = tsig_name;
+ tsig_name = tsig_data;
+ tsig_data = tsig_algo;
+ tsig_algo = tmp_tsig_algo;
+ }
+ printf("Sign with name: %s, data: %s, algorithm: %s\n"
+ , tsig_name, tsig_data, tsig_algo);
break;
case 'z':
zone_name = optarg;
@@ -224,8 +262,22 @@ main(int argc, char **argv)
exit(1);
}
break;
+ case 'I':
+ memset(&from_hints, 0, sizeof(from_hints));
+ from_hints.ai_family = AF_UNSPEC;
+ from_hints.ai_socktype = SOCK_DGRAM;
+ from_hints.ai_protocol = IPPROTO_UDP;
+ from_hints.ai_flags = AI_NUMERICHOST;
+ error = getaddrinfo(optarg, 0, &from_hints, &from0);
+ if (error) {
+ printf("bad address: %s: %s\n", optarg,
+ gai_strerror(error));
+ exit(EXIT_FAILURE);
+ }
+ break;
case 'v':
version();
+ /* fallthrough */
case 'h':
case '?':
default:
@@ -241,9 +293,8 @@ main(int argc, char **argv)
notify = ldns_pkt_new();
question = ldns_rr_new();
- res = ldns_resolver_new();
- if (!notify || !question || !res) {
+ if (!notify || !question) {
/* bail out */
printf("error: cannot create ldns types\n");
exit(1);
@@ -253,6 +304,7 @@ main(int argc, char **argv)
ldns_rr_set_class(question, LDNS_RR_CLASS_IN);
ldns_rr_set_owner(question, ldns_zone_name);
ldns_rr_set_type(question, LDNS_RR_TYPE_SOA);
+ ldns_rr_set_question(question, true);
ldns_pkt_set_opcode(notify, LDNS_PACKET_NOTIFY);
ldns_pkt_push_rr(notify, LDNS_SECTION_QUESTION, question);
ldns_pkt_set_aa(notify, true);
@@ -272,11 +324,10 @@ main(int argc, char **argv)
ldns_pkt_push_rr(notify, LDNS_SECTION_ANSWER, soa_rr);
}
- if(tsig_cred.keyname) {
+ if(tsig_name && tsig_data) {
#ifdef HAVE_SSL
- status = ldns_pkt_tsig_sign(notify, tsig_cred.keyname,
- tsig_cred.keydata, 300, tsig_cred.algorithm,
- NULL);
+ status = ldns_pkt_tsig_sign(notify, tsig_name,
+ tsig_data, 300, tsig_algo, NULL);
if(status != LDNS_STATUS_OK) {
printf("Error TSIG sign query: %s\n",
ldns_get_errorstr_by_id(status));
@@ -293,11 +344,13 @@ main(int argc, char **argv)
}
status = ldns_pkt2wire(&wire, notify, &wiresize);
- if(wiresize == 0) {
+ if (status) {
+ printf("Error converting notify packet to hex: %s\n",
+ ldns_get_errorstr_by_id(status));
+ } else if(wiresize == 0) {
printf("Error converting notify packet to hex.\n");
exit(1);
}
-
if(do_hexdump && verbose > 1) {
printf("Hexdump of notify packet:\n");
for(i=0; i<(int)wiresize; i++)
@@ -308,13 +361,13 @@ main(int argc, char **argv)
for(i=0; i<argc; i++)
{
struct addrinfo hints, *res0, *ai_res;
- int error;
- int default_family = AF_INET;
+ int default_family = AF_UNSPEC;
if(verbose)
printf("# sending to %s\n", argv[i]);
memset(&hints, 0, sizeof(hints));
hints.ai_family = default_family;
+ /* if(strchr(argv[i], ':')) hints.ai_family = AF_INET6; */
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
error = getaddrinfo(argv[i], port, &hints, &res0);
@@ -324,10 +377,19 @@ main(int argc, char **argv)
continue;
}
for (ai_res = res0; ai_res; ai_res = ai_res->ai_next) {
- int s = socket(ai_res->ai_family, ai_res->ai_socktype,
+ int s;
+
+ if (from0 && ai_res->ai_family != from0->ai_family)
+ continue;
+
+ s = socket(ai_res->ai_family, ai_res->ai_socktype,
ai_res->ai_protocol);
if(s == -1)
continue;
+ if (from0 && bind(s, from0->ai_addr, from0->ai_addrlen)) {
+ perror("Could not bind to source IP");
+ exit(EXIT_FAILURE);
+ }
/* send the notify */
notify_host(s, ai_res, wire, wiresize, argv[i]);
}
diff --git a/examples/ldns-nsec3-hash.c b/examples/ldns-nsec3-hash.c
index 0ba2e68aec44..f9325d3bd525 100644
--- a/examples/ldns-nsec3-hash.c
+++ b/examples/ldns-nsec3-hash.c
@@ -60,6 +60,7 @@ main(int argc, char *argv[])
fprintf(stderr, "Salt too long\n");
exit(EXIT_FAILURE);
}
+ if (nsec3_salt) LDNS_FREE(nsec3_salt);
nsec3_salt_length = (uint8_t) (strlen(optarg) / 2);
nsec3_salt = LDNS_XMALLOC(uint8_t, nsec3_salt_length);
for (c = 0; c < (int) strlen(optarg); c += 2) {
@@ -97,6 +98,8 @@ main(int argc, char *argv[])
} else {
dname = ldns_dname_new_frm_str(argv[0]);
if (!dname) {
+ free(prog);
+ if (nsec3_salt) free(nsec3_salt);
fprintf(stderr,
"Error: unable to parse domain name\n");
return EXIT_FAILURE;
@@ -107,6 +110,8 @@ main(int argc, char *argv[])
nsec3_salt_length,
nsec3_salt);
if (!hashed_dname) {
+ free(prog);
+ if (nsec3_salt) free(nsec3_salt);
fprintf(stderr,
"Error creating NSEC3 hash\n");
return EXIT_FAILURE;
diff --git a/examples/ldns-read-zone.1 b/examples/ldns-read-zone.1
index 0d77889f49c7..18c9f6dbf69d 100644
--- a/examples/ldns-read-zone.1
+++ b/examples/ldns-read-zone.1
@@ -65,7 +65,7 @@ printed.
.TP
\fB-S\fR \fI[[+|0]number | YYYYMMDDxx | unixtime ]\fR
Set serial number to the given \fInumber\fR, or when preceded by a sign,
-offset the exisiting number with it. When giving the literal strings
+offset the existing number with it. When giving the literal strings
\fIYYYYMMDDxx\fR or \fIunixtime\fR, the serial number is tried to be reset
in datecounter or in unixtime format respectively. Though is the updated serial
number is smaller than the original one, the original one is simply
diff --git a/examples/ldns-read-zone.c b/examples/ldns-read-zone.c
index c61f80ad80b4..2a1bc99a32cb 100644
--- a/examples/ldns-read-zone.c
+++ b/examples/ldns-read-zone.c
@@ -258,7 +258,7 @@ main(int argc, char **argv)
fclose(fp);
if (s != LDNS_STATUS_OK) {
- fprintf(stderr, "%s at %d\n",
+ fprintf(stderr, "%s at line %d\n",
ldns_get_errorstr_by_id(s),
line_nr);
exit(EXIT_FAILURE);
diff --git a/examples/ldns-resolver.1 b/examples/ldns-resolver.1
index 9552e6860ce4..2392606881f5 100644
--- a/examples/ldns-resolver.1
+++ b/examples/ldns-resolver.1
@@ -7,7 +7,7 @@ ldns-resolver \- tries to create a resolver from a resolv.conf file.
.SH DESCRIPTION
\fBldns-resolver\fR tries to create a resolver from a resolv.conf file.
-This is only useful to test the library for robusteness with input data.
+This is only useful to test the library for robustness with input data.
.SH OPTIONS
\fBldns-resolver\fR takes a filename of the resolv.conf file as input.
diff --git a/examples/ldns-resolver.c b/examples/ldns-resolver.c
index 04dcc35febdb..6f5f0625ae20 100644
--- a/examples/ldns-resolver.c
+++ b/examples/ldns-resolver.c
@@ -1,6 +1,6 @@
/*
* ldns-resolver tries to create a resolver structure from /dev/urandom
- * this is only useful to test the library for robusteness with input data
+ * this is only useful to test the library for robustness with input data
*
* (c) NLnet Labs 2006 - 2008
* See the file LICENSE for the license
@@ -36,7 +36,7 @@ main(int argc, char **argv) {
printf("Failed: %s at line %d\n", ldns_get_errorstr_by_id(s), line);
exit(EXIT_FAILURE);
} else {
- printf("Succes\n");
+ printf("Success\n");
ldns_resolver_print(stdout, r);
ldns_resolver_deep_free(r);
}
diff --git a/examples/ldns-rrsig.1 b/examples/ldns-rrsig.1
index 3aee863e057d..d64b9f3ba4d9 100644
--- a/examples/ldns-rrsig.1
+++ b/examples/ldns-rrsig.1
@@ -13,7 +13,7 @@ readable form
\fBldns-rrsig\fR is used to print the expiration and inception date of
a RRSIG. The first argument is a domain name. \fBldns-rrsig\fR will
query the authoritative servers for that domain to get a list of RRSIGs.
-It will then print out the inception and experiration dates for the RRSIG
+It will then print out the inception and expiration dates for the RRSIG
covering the SOA record.
.PP
If the second argument \fBtype\fR is given the RRSIG covering that type will be shown.
diff --git a/examples/ldns-rrsig.c b/examples/ldns-rrsig.c
index a66586160082..9b7aac437634 100644
--- a/examples/ldns-rrsig.c
+++ b/examples/ldns-rrsig.c
@@ -2,7 +2,7 @@
* ldns-rrsig prints out the inception and expiration dates in a more readable
* way than the normal RRSIG presentation format
*
- * for a particulary domain
+ * for a particularly domain
* (c) NLnet Labs, 2005 - 2008
* See the file LICENSE for the license
*/
@@ -61,7 +61,7 @@ main(int argc, char *argv[])
if (argc == 3) {
/* optional type arg */
- type_name = strdup(argv[2]);
+ type_name = argv[2];
t = ldns_rdf2rr_type(
ldns_rdf_new_frm_str(LDNS_RDF_TYPE_TYPE, type_name));
if (t == 0) {
@@ -180,7 +180,7 @@ main(int argc, char *argv[])
for(i = 0; i < ldns_rr_list_rr_count(rrsig_type); i++) {
memset(&incep, 0, sizeof(incep));
- if (ldns_serial_arithmitics_gmtime_r(
+ if (ldns_serial_arithmetics_gmtime_r(
ldns_rdf2native_time_t(
ldns_rr_rrsig_inception(
ldns_rr_list_rr(rrsig_type, i))),
@@ -192,7 +192,7 @@ main(int argc, char *argv[])
incep_buf[0] = '\0';
}
memset(&expir, 0, sizeof(expir));
- if (ldns_serial_arithmitics_gmtime_r(
+ if (ldns_serial_arithmetics_gmtime_r(
ldns_rdf2native_time_t(
ldns_rr_rrsig_expiration(
ldns_rr_list_rr(rrsig_type, i))),
diff --git a/examples/ldns-signzone.1 b/examples/ldns-signzone.1
index c33e15210f35..68f9f77376a2 100644
--- a/examples/ldns-signzone.1
+++ b/examples/ldns-signzone.1
@@ -1,4 +1,4 @@
-.TH ldns-signzone 1 "30 May 2005"
+.TH ldns-signzone 1 "13 March 2018"
.SH NAME
ldns-signzone \- sign a zonefile with DNSSEC data
.SH SYNOPSIS
@@ -34,7 +34,7 @@ file, and have the KSK bit set.
\fB-b\fR
Augments the zone and the RR's with extra comment texts for a more readable
layout, easier to debug. DS records will have a bubblebabble version of
-the data in the comment text, NSEC3 records will have the original NSEC3
+the data in the comment text, NSEC3 records will have the unhashed owner names
in the comment text.
Without this option, only DNSKEY RR's will have their Key Tag annotated in
@@ -66,10 +66,24 @@ YYYYMMDD[hhmmss], or a timestamp.
Use this as the origin of the zone
.TP
+\fB-u\fR
+set SOA serial to the number of seconds since 1-1-1970
+
+.TP
\fB-v\fR
Print the version and exit
.TP
+\fB-z\fR \fI[scheme:]hash\fR
+Calculate the zone's digest and add those as ZONEMD RRs. The (optional)
+`scheme' must be `simple` (or 1) and `hash' should be `sha384' (or 1) or
+`sha512' (or 2). This option can be given more than once.
+
+.TP
+\fB-Z\fR
+Allow ZONEMDs to be added without signing
+
+.TP
\fB-A\fR
Sign the DNSKEY record with all keys. By default it is signed with a
minimal number of keys, to keep the response size for the DNSKEY query
@@ -78,24 +92,30 @@ SEP keys, the DNSKEY RRset is signed with the non\-SEP keys. This option
turns off the default and all keys are used to sign the DNSKEY RRset.
.TP
+\fB-U\fR
+Sign with every unique algorithm in the provided keys. The DNSKEY set
+is signed with all the SEP keys, plus all the non\-SEP keys that have an
+algorithm that was not presen in the SEP key set.
+
+.TP
\fB-E\fR \fIname\fR
Use the EVP cryptographic engine with the given name for signing. This
can have some extra options; see ENGINE OPTIONS for more information.
.TP
-\fB-k\fR \fIid,int\fR
-Use the key with the given id as the signing key for algorithm int as
-a Zone signing key. This option is used when you use an OpenSSL
-engine, see ENGINE OPTIONS for more information.
-
-.TP
-\fB-K\fR \fIid,int\fR
+\fB-K\fR \fIalgorithm-id,key-id\fR
-Use the key with the given id as the signing key for algorithm int as
-a Key signing key. This options is used when you use an OpenSSL engine,
+Use the key `key-id' as the signing key for algorithm `algorithm-id' as
+a Key Signing Key (KSK). This option is used when you use an OpenSSL engine,
see ENGINE OPTIONS for more information.
.TP
+\fB-k\fR \fIalgorithm-id,key-id\fR
+Use the key `key-id' as the signing key for algorithm `algorithm-id' as
+a Zone Signing Key (ZSK). This option is used when you use an OpenSSL
+engine, see ENGINE OPTIONS for more information.
+
+.TP
\fB-n\fR
Use NSEC3 instead of NSEC.
@@ -121,11 +141,15 @@ Number of hash iterations
.SH ENGINE OPTIONS
You can modify the possible engines, if supported, by setting an
OpenSSL configuration file. This is done through the environment
-variable OPENSSL_CONF. If you use \-E with a non-existent engine name,
-ldns-signzone will print a list of engines supported by your
-configuration.
+variable OPENSSL_CONF.
-The key options (\-k and \-K) work as follows; you specify a key id, and a DNSSEC algorithm number (for instance, 5 for RSASHA1). The key id can be any of the following:
+The key options (\-k and \-K) work as follows: you specify a DNSSEC
+algorithm (using its symbolic name, for instance, RSASHA256
+or its numeric identifier, for instance, 8), followed by a comma
+and a key identifier (white space is not allowed between the
+algorithm and the comma and between the comma and the key identifier).
+
+The key identifier can be any of the following:
<id>
<slot>:<id>
@@ -138,6 +162,10 @@ Where '<id>' is the PKCS #11 key identifier in hexadecimal
notation, '<label>' is the PKCS #11 human-readable label, and '<slot>'
is the slot number where the token is present.
+More recent versions of OpenSSL engines may support
+the PKCS #11 URI scheme (RFC 7512),
+please consult your engine's documentation.
+
If not already present, a DNSKEY RR is generated from the key
data, and added to the zone.
@@ -152,8 +180,10 @@ file 'Knlnetlabs.nl.+005+12273.key'. If that is not present, generate
one with default values from 'Knlnetlabs.nl.+005+12273.private'.
-.SH AUTHOR
+.SH AUTHORS
Written by the ldns team as an example for ldns usage.
+.br
+Portions of engine support by Vadim Penzin <vadim@penzin.net>.
.SH REPORTING BUGS
Report bugs to <ldns-team@nlnetlabs.nl>.
diff --git a/examples/ldns-signzone.c b/examples/ldns-signzone.c
index 2adc94317966..9425833e53b6 100644
--- a/examples/ldns-signzone.c
+++ b/examples/ldns-signzone.c
@@ -5,7 +5,12 @@
* See the file LICENSE for the license
*/
+#include <stdio.h>
+
#include "config.h"
+
+#ifdef HAVE_SSL
+
#include <stdlib.h>
#include <unistd.h>
@@ -16,16 +21,16 @@
#include <ldns/ldns.h>
#include <ldns/keys.h>
-#ifdef HAVE_SSL
#include <openssl/conf.h>
+#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
-#endif /* HAVE_SSL */
+#endif
+#include <openssl/err.h>
#define MAX_FILENAME_LEN 250
-int verbosity = 1;
-#ifdef HAVE_SSL
-#include <openssl/err.h>
+char *prog;
+int verbosity = 1;
static void
usage(FILE *fp, const char *prog) {
@@ -37,14 +42,21 @@ usage(FILE *fp, const char *prog) {
fprintf(fp, " -f <file>\toutput zone to file (default <name>.signed)\n");
fprintf(fp, " -i <date>\tinception date\n");
fprintf(fp, " -o <domain>\torigin for the zone\n");
+ fprintf(fp, " -u\t\tset SOA serial to the number of seconds since 1-1-1970\n");
fprintf(fp, " -v\t\tprint version and exit\n");
+ fprintf(fp, " -z <[scheme:]hash>\tAdd ZONEMD resource record\n");
+ fprintf(fp, "\t\t<scheme> should be \"simple\" (or 1)\n");
+ fprintf(fp, "\t\t<hash> should be \"sha384\" or \"sha512\" (or 1 or 2)\n");
+ fprintf(fp, "\t\tthis option can be given more than once\n");
+ fprintf(fp, " -Z\t\tAllow ZONEMDs to be added without signing\n");
fprintf(fp, " -A\t\tsign DNSKEY with all keys instead of minimal\n");
fprintf(fp, " -U\t\tSign with every unique algorithm in the provided keys\n");
+#ifndef OPENSSL_NO_ENGINE
fprintf(fp, " -E <name>\tuse <name> as the crypto engine for signing\n");
fprintf(fp, " \tThis can have a lot of extra options, see the manual page for more info\n");
- fprintf(fp, " -k <id>,<int>\tuse key id with algorithm int from engine\n");
- fprintf(fp, " -K <id>,<int>\tuse key id with algorithm int from engine as KSK\n");
- fprintf(fp, "\t\tif no key is given (but an external one is used through the engine support, it might be necessary to provide the right algorithm number.\n");
+ fprintf(fp, " -k <algorithm>,<key>\tuse `key' with `algorithm' from engine as ZSK\n");
+ fprintf(fp, " -K <algorithm>,<key>\tuse `key' with `algorithm' from engine as KSK\n");
+#endif
fprintf(fp, " -n\t\tuse NSEC3 instead of NSEC.\n");
fprintf(fp, "\t\tIf you use NSEC3, you can specify the following extra options:\n");
fprintf(fp, "\t\t-a [algorithm] hashing algorithm\n");
@@ -58,6 +70,41 @@ usage(FILE *fp, const char *prog) {
fprintf(fp, " will be read from the file called <base name>.key. If that does not exist,\n");
fprintf(fp, " a default DNSKEY will be generated from the private key and added to the zone.\n");
fprintf(fp, " A date can be a timestamp (seconds since the epoch), or of\n the form <YYYYMMdd[hhmmss]>\n");
+#ifndef OPENSSL_NO_ENGINE
+ fprintf(fp, " For -k or -K, the algorithm can be specified as an integer or a symbolic name:" );
+
+#define __LIST(x) fprintf ( fp, " %3d: %-15s", LDNS_SIGN_ ## x, # x )
+
+ fprintf ( fp, "\n " );
+ __LIST ( RSAMD5 );
+#ifdef USE_DSA
+ __LIST ( DSA );
+#endif
+ __LIST ( RSASHA1 );
+ fprintf ( fp, "\n " );
+#ifdef USE_DSA
+ __LIST ( DSA_NSEC3 );
+#endif
+ __LIST ( RSASHA1_NSEC3 );
+ __LIST ( RSASHA256 );
+ fprintf ( fp, "\n " );
+ __LIST ( RSASHA512 );
+ __LIST ( ECC_GOST );
+ __LIST ( ECDSAP256SHA256 );
+ fprintf ( fp, "\n " );
+ __LIST ( ECDSAP384SHA384 );
+
+#ifdef USE_ED25519
+ __LIST ( ED25519 );
+#endif
+
+#ifdef USE_ED448
+ __LIST ( ED448 );
+#endif
+ fprintf ( fp, "\n" );
+
+#undef __LIST
+#endif
}
static void check_tm(struct tm tm)
@@ -288,6 +335,270 @@ find_or_create_pubkey(const char *keyfile_name_base, ldns_key *key, ldns_zone *o
}
}
+#ifndef OPENSSL_NO_ENGINE
+/*
+ * For keys coming from the engine (-k or -K), parse algorithm specification.
+ */
+static enum ldns_enum_signing_algorithm
+parse_algspec ( const char * const p )
+{
+ if ( p == NULL )
+ return 0;
+
+ if ( isdigit ( (const unsigned char)*p ) ) {
+ const char *nptr = NULL;
+ const long id = strtol ( p, (char **) &nptr, 10 );
+ return id > 0 && nptr != NULL && *nptr == ',' ? id : 0;
+ }
+
+#define __MATCH(x) \
+ if ( !memcmp ( # x, p, sizeof ( # x ) - 1 ) \
+ && p [ sizeof ( # x ) - 1 ] == ',' ) { \
+ return LDNS_SIGN_ ## x; \
+ }
+
+ __MATCH ( RSAMD5 );
+ __MATCH ( RSASHA1 );
+#ifdef USE_DSA
+ __MATCH ( DSA );
+#endif
+ __MATCH ( RSASHA1_NSEC3 );
+ __MATCH ( RSASHA256 );
+ __MATCH ( RSASHA512 );
+#ifdef USE_DSA
+ __MATCH ( DSA_NSEC3 );
+#endif
+ __MATCH ( ECC_GOST );
+ __MATCH ( ECDSAP256SHA256 );
+ __MATCH ( ECDSAP384SHA384 );
+
+#ifdef USE_ED25519
+ __MATCH ( ED25519 );
+#endif
+
+#ifdef USE_ED448
+ __MATCH ( ED448 );
+#endif
+
+#undef __MATCH
+
+ return 0;
+}
+
+/*
+ * For keys coming from the engine (-k or -K), parse key specification
+ * in the form of <algorithm>,<key-id>. No whitespace is allowed
+ * between <algorithm> and the comma, and between the comma and
+ * <key-id>. <key-id> format is specific to the engine at hand, i.e.
+ * it can be the old OpenSC syntax or a PKCS #11 URI as defined in RFC 7512
+ * and (partially) supported by OpenSC (as of 20180312).
+ */
+static const char *
+parse_keyspec ( const char * const p,
+ enum ldns_enum_signing_algorithm * const algorithm,
+ const char ** const id )
+{
+ const char * const comma = strchr ( p, ',' );
+
+ if ( comma == NULL || !(*algorithm = parse_algspec ( p )) )
+ return NULL;
+ return comma [ 1 ] ? *id = comma + 1 : NULL;
+}
+
+/*
+ * Load a key from the engine.
+ */
+static ldns_key *
+load_key ( const char * const p, ENGINE * const e )
+{
+ enum ldns_enum_signing_algorithm alg = 0;
+ const char *id = NULL;
+ ldns_status status = LDNS_STATUS_ERR;
+ ldns_key *key = NULL;
+
+ /* Parse key specification. */
+ if ( parse_keyspec ( p, &alg, &id ) == NULL ) {
+ fprintf ( stderr,
+ "Failed to parse key specification `%s'.\n",
+ p );
+ usage ( stderr, prog );
+ exit ( EXIT_FAILURE );
+ }
+
+ /* Validate that the algorithm can be used for signing. */
+ switch ( alg ) {
+ case LDNS_SIGN_RSAMD5:
+ case LDNS_SIGN_RSASHA1:
+ case LDNS_SIGN_RSASHA1_NSEC3:
+ case LDNS_SIGN_RSASHA256:
+ case LDNS_SIGN_RSASHA512:
+#ifdef USE_DSA
+ case LDNS_SIGN_DSA:
+ case LDNS_SIGN_DSA_NSEC3:
+#endif
+ case LDNS_SIGN_ECC_GOST:
+#ifdef USE_ECDSA
+ case LDNS_SIGN_ECDSAP256SHA256:
+ case LDNS_SIGN_ECDSAP384SHA384:
+#endif
+ break;
+ default:
+ fprintf ( stderr,
+ "Algorithm %d cannot be used for signing.\n",
+ alg );
+ usage ( stderr, prog );
+ exit ( EXIT_FAILURE );
+ }
+
+ printf ( "Engine key id: %s, algo %d\n", id, alg );
+
+ /* Attempt to load the key from the engine. */
+ status = ldns_key_new_frm_engine (
+ &key, e, (char *) id, (ldns_algorithm)alg );
+ if ( status != LDNS_STATUS_OK ) {
+ ERR_print_errors_fp ( stderr );
+ exit ( EXIT_FAILURE );
+ }
+
+ return key;
+}
+
+/*
+ * For keys coming from the engine (-k or -K), set key parameters
+ * and determine whether the key is listed in the zone file.
+ */
+static void
+post_process_engine_key ( ldns_key_list * const keys,
+ ldns_key * const key,
+ ldns_zone * const zone,
+ const bool add_keys,
+ const uint32_t ttl,
+ const uint32_t inception,
+ const uint32_t expiration )
+{
+ if ( key == NULL ) return;
+
+ if ( expiration ) ldns_key_set_expiration ( key, expiration );
+
+ if ( inception ) ldns_key_set_inception ( key, inception );
+
+ ldns_key_list_push_key ( keys, key );
+ find_or_create_pubkey ( "", key, zone, add_keys, ttl );
+}
+
+/*
+ * Initialize OpenSSL, for versions 1.1 and newer.
+ */
+static ENGINE *
+init_openssl_engine ( const char * const id )
+{
+ ENGINE *e = NULL;
+
+#ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS
+ ERR_load_crypto_strings();
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL) || !defined(HAVE_OPENSSL_INIT_CRYPTO)
+ OpenSSL_add_all_algorithms();
+#else
+ if ( !OPENSSL_init_crypto ( OPENSSL_INIT_LOAD_CONFIG, NULL ) ) {
+ fprintf ( stderr, "OPENSSL_init_crypto(3) failed.\n" );
+ ERR_print_errors_fp ( stderr );
+ exit ( EXIT_FAILURE );
+ }
+#endif
+
+ if ( (e = ENGINE_by_id ( id )) == NULL ) {
+ fprintf ( stderr, "ENGINE_by_id(3) failed.\n" );
+ ERR_print_errors_fp ( stderr );
+ exit ( EXIT_FAILURE );
+ }
+
+ if ( !ENGINE_set_default_DSA ( e ) ) {
+ fprintf ( stderr, "ENGINE_set_default_DSA(3) failed.\n" );
+ ERR_print_errors_fp ( stderr );
+ exit ( EXIT_FAILURE );
+ }
+
+ if ( !ENGINE_set_default_RSA ( e ) ) {
+ fprintf ( stderr, "ENGINE_set_default_RSA(3) failed.\n" );
+ ERR_print_errors_fp ( stderr );
+ exit ( EXIT_FAILURE );
+ }
+
+ return e;
+}
+
+/*
+ * De-initialize OpenSSL, for versions 1.1 and newer.
+ *
+ * All of that is not strictly necessary because the process exits
+ * anyway, however, when an engine is used, this is the only hope
+ * of letting the engine's driver know that the program terminates
+ * (for the fear that the driver's reference counting may go awry, etc.)
+ * Still, there is no guarantee that this function helps...
+ */
+static void
+shutdown_openssl ( ENGINE * const e )
+{
+ if ( e != NULL ) {
+#ifdef HAVE_ENGINE_FREE
+ ENGINE_free ( e );
+#endif
+#ifdef HAVE_ENGINE_CLEANUP
+ ENGINE_cleanup ();
+#endif
+ }
+
+#ifdef HAVE_CONF_MODULES_UNLOAD
+ CONF_modules_unload ( 1 );
+#endif
+#ifdef HAVE_EVP_CLEANUP
+ EVP_cleanup ();
+#endif
+#ifdef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
+ CRYPTO_cleanup_all_ex_data ();
+#endif
+#ifdef HAVE_ERR_FREE_STRINGS
+ ERR_free_strings ();
+#endif
+}
+#endif
+
+int str2zonemd_signflag(const char *str, const char **reason)
+{
+ char *colon;
+
+ static const char *reasons[] = {
+ "Unknown <scheme>, should be \"simple\""
+ , "Syntax error in <hash>, should be \"sha384\" or \"sha512\""
+ , "Unknown <hash>, should be \"sha384\" or \"sha512\""
+ };
+
+ if (!str)
+ return LDNS_STATUS_NULL;
+
+ if ((colon = strchr(str, ':'))) {
+ if ((colon - str != 1 || str[0] != '1')
+ && (colon - str != 6 || strncasecmp(str, "simple", 6))) {
+ if (reason) *reason = reasons[0];
+ return 0;
+ }
+
+ if (strchr(colon + 1, ':')) {
+ if (reason) *reason = reasons[1];
+ return 0;
+ }
+ return str2zonemd_signflag(colon + 1, reason);
+ }
+ if (!strcasecmp(str, "1") || !strcasecmp(str, "sha384"))
+ return LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA384;
+ if (!strcasecmp(str, "2") || !strcasecmp(str, "sha512"))
+ return LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA512;
+
+ if (reason) *reason = reasons[2];
+ return 0;
+}
+
int
main(int argc, char *argv[])
{
@@ -296,8 +607,9 @@ main(int argc, char *argv[])
int line_nr = 0;
int c;
int argi;
+#ifndef OPENSSL_NO_ENGINE
ENGINE *engine = NULL;
-
+#endif
ldns_zone *orig_zone;
ldns_rr_list *orig_rrs = NULL;
ldns_rr *orig_soa = NULL;
@@ -307,6 +619,10 @@ main(int argc, char *argv[])
char *keyfile_name = NULL;
FILE *keyfile = NULL;
ldns_key *key = NULL;
+#ifndef OPENSSL_NO_ENGINE
+ ldns_key *eng_ksk = NULL; /* KSK specified with -K */
+ ldns_key *eng_zsk = NULL; /* ZSK specified with -k */
+#endif
ldns_key_list *keys;
ldns_status s;
size_t i;
@@ -315,14 +631,9 @@ main(int argc, char *argv[])
char *outputfile_name = NULL;
FILE *outputfile;
- /* tmp vars for engine keys */
- char *eng_key_l;
- size_t eng_key_id_len;
- char *eng_key_id;
- int eng_key_algo;
-
bool use_nsec3 = false;
int signflags = 0;
+ bool unixtime_serial = false;
/* Add the given keys to the zone if they are not yet present */
bool add_keys = true;
@@ -343,18 +654,22 @@ main(int argc, char *argv[])
uint32_t ttl = LDNS_DEFAULT_TTL;
ldns_rr_class class = LDNS_RR_CLASS_IN;
- char *prog = strdup(argv[0]);
ldns_status result;
ldns_output_format_storage fmt_st;
ldns_output_format* fmt = ldns_output_format_init(&fmt_st);
-
+
+ /* For parson zone digest parameters */
+ int flag;
+ const char *reason = NULL;
+
+ prog = strdup(argv[0]);
inception = 0;
expiration = 0;
keys = ldns_key_list_new();
- while ((c = getopt(argc, argv, "a:bde:f:i:k:no:ps:t:vAUE:K:")) != -1) {
+ while ((c = getopt(argc, argv, "a:bde:f:i:k:no:ps:t:uvz:ZAUE:K:")) != -1) {
switch (c) {
case 'a':
nsec3_algorithm = (uint8_t) atoi(optarg);
@@ -400,7 +715,7 @@ main(int argc, char *argv[])
}
break;
case 'f':
- outputfile_name = LDNS_XMALLOC(char, MAX_FILENAME_LEN);
+ outputfile_name = LDNS_XMALLOC(char, MAX_FILENAME_LEN + 1);
strncpy(outputfile_name, optarg, MAX_FILENAME_LEN);
break;
case 'i':
@@ -439,111 +754,55 @@ main(int argc, char *argv[])
case 'p':
nsec3_flags = nsec3_flags | LDNS_NSEC3_VARS_OPTOUT_MASK;
break;
+ case 'u':
+ unixtime_serial = true;
+ break;
case 'v':
printf("zone signer version %s (ldns version %s)\n", LDNS_VERSION, ldns_version());
exit(EXIT_SUCCESS);
break;
+ case 'z':
+ flag = str2zonemd_signflag(optarg, &reason);
+ if (flag)
+ signflags |= flag;
+ else {
+ fprintf( stderr
+ , "%s\nwith zone digest parameters:"
+ " \"%s\"\n"
+ , reason, optarg);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'Z':
+ signflags |= LDNS_SIGN_NO_KEYS_NO_NSECS;
+ break;
case 'A':
signflags |= LDNS_SIGN_DNSKEY_WITH_ZSK;
break;
case 'E':
- ENGINE_load_builtin_engines();
- ENGINE_load_dynamic();
-#ifdef HAVE_ENGINE_LOAD_CRYPTODEV
- ENGINE_load_cryptodev();
-#endif
- engine = ENGINE_by_id(optarg);
- if (!engine) {
- printf("No such engine: %s\n", optarg);
- engine = ENGINE_get_first();
- printf("Available engines:\n");
- while (engine) {
- printf("%s\n", ENGINE_get_id(engine));
- engine = ENGINE_get_next(engine);
- }
- exit(EXIT_FAILURE);
- } else {
- if (!ENGINE_init(engine)) {
- printf("The engine couldn't initialize\n");
- exit(EXIT_FAILURE);
- }
- ENGINE_set_default_RSA(engine);
- ENGINE_set_default_DSA(engine);
- ENGINE_set_default(engine, 0);
- }
+#ifndef OPENSSL_NO_ENGINE
+ engine = init_openssl_engine ( optarg );
break;
+#else
+ /* fallthrough */
+#endif
case 'k':
- eng_key_l = strchr(optarg, ',');
- if (eng_key_l && strlen(eng_key_l) > 1) {
- if (eng_key_l > optarg) {
- eng_key_id_len = (size_t) (eng_key_l - optarg);
- eng_key_id = malloc(eng_key_id_len + 1);
- memcpy(eng_key_id, optarg, eng_key_id_len);
- eng_key_id[eng_key_id_len] = '\0';
- } else {
- /* no id given, use default from engine */
- eng_key_id = NULL;
- }
-
- eng_key_algo = atoi(eng_key_l + 1);
-
- printf("Engine key id: %s, algo %d\n", eng_key_id, eng_key_algo);
-
- s = ldns_key_new_frm_engine(&key, engine, eng_key_id, eng_key_algo);
- if (s == LDNS_STATUS_OK) {
- /* must be dnssec key */
- switch (ldns_key_algorithm(key)) {
- case LDNS_SIGN_RSAMD5:
- case LDNS_SIGN_RSASHA1:
- case LDNS_SIGN_RSASHA1_NSEC3:
- case LDNS_SIGN_RSASHA256:
- case LDNS_SIGN_RSASHA512:
- case LDNS_SIGN_DSA:
- case LDNS_SIGN_DSA_NSEC3:
- case LDNS_SIGN_ECC_GOST:
-#ifdef USE_ECDSA
- case LDNS_SIGN_ECDSAP256SHA256:
- case LDNS_SIGN_ECDSAP384SHA384:
-#endif
- ldns_key_list_push_key(keys, key);
- /*printf("Added key at %p:\n", key);*/
- /*ldns_key_print(stdout, key);*/
- break;
- default:
- fprintf(stderr, "Warning, key not suitable for signing, ignoring key with algorithm %u\n", ldns_key_algorithm(key));
- break;
- }
- if (expiration != 0) {
- ldns_key_set_expiration(key,
- expiration);
- }
- if (inception != 0) {
- ldns_key_set_inception(key,
- inception);
- }
- } else {
- printf("Error reading key '%s' from engine: %s\n", eng_key_id, ldns_get_errorstr_by_id(s));
- #ifdef HAVE_SSL
- if (ERR_peek_error()) {
- ERR_load_crypto_strings();
- ERR_print_errors_fp(stderr);
- ERR_free_strings();
- }
- #endif
- exit(EXIT_FAILURE);
- }
-
- if (eng_key_id) {
- free(eng_key_id);
- }
- } else {
- printf("Error: bad engine key specification (should be: -k <id>,<algorithm>)).\n");
- exit(EXIT_FAILURE);
- }
+#ifndef OPENSSL_NO_ENGINE
+ eng_zsk = load_key ( optarg, engine );
break;
+#else
+ /* fallthrough */
+#endif
case 'K':
- printf("Not implemented yet\n");
+#ifndef OPENSSL_NO_ENGINE
+ eng_ksk = load_key ( optarg, engine );
+ /* I apologize for that, there is no API. */
+ eng_ksk -> _extra.dnssec.flags |= LDNS_KEY_SEP_KEY;
+#else
+ fprintf(stderr, "%s compiled without engine support\n"
+ , prog);
exit(EXIT_FAILURE);
+#endif
break;
case 'U':
signflags |= LDNS_SIGN_WITH_ALL_ALGORITHMS;
@@ -702,14 +961,48 @@ main(int argc, char *argv[])
}
argi++;
}
-
- if (ldns_key_list_key_count(keys) < 1) {
+
+#ifndef OPENSSL_NO_ENGINE
+ /*
+ * The user may have loaded a KSK and a ZSK from the engine.
+ * Since these keys carry no meta-information which is
+ * relevant to DNS (origin, TTL, etc), and because that
+ * information becomes known only after the command line
+ * and the zone file are parsed completely, the program
+ * needs to post-process these keys before they become usable.
+ */
+
+ /* The engine's KSK. */
+ post_process_engine_key ( keys,
+ eng_ksk,
+ orig_zone,
+ add_keys,
+ ttl,
+ inception,
+ expiration );
+
+ /* The engine's ZSK. */
+ post_process_engine_key ( keys,
+ eng_zsk,
+ orig_zone,
+ add_keys,
+ ttl,
+ inception,
+ expiration );
+#endif
+ if (ldns_key_list_key_count(keys) < 1
+ && !(signflags & LDNS_SIGN_NO_KEYS_NO_NSECS)) {
+
fprintf(stderr, "Error: no keys to sign with. Aborting.\n\n");
usage(stderr, prog);
exit(EXIT_FAILURE);
}
signed_zone = ldns_dnssec_zone_new();
+ if (unixtime_serial) {
+ ldns_rr_soa_increment_func_int(ldns_zone_soa(orig_zone),
+ ldns_soa_serial_unixtime, 0);
+ }
if (ldns_dnssec_zone_add_rr(signed_zone, ldns_zone_soa(orig_zone)) !=
LDNS_STATUS_OK) {
fprintf(stderr,
@@ -730,11 +1023,27 @@ main(int argc, char *argv[])
ldns_rr_list_rr(ldns_zone_rrs(orig_zone), i));
}
}
-
/* list to store newly created rrs, so we can free them later */
added_rrs = ldns_rr_list_new();
if (use_nsec3) {
+ if (verbosity < 1)
+ ; /* pass */
+
+ else if (nsec3_iterations > 500)
+ fprintf(stderr, "Warning! NSEC3 iterations larger than "
+ "500 may cause validating resolvers to return "
+ "SERVFAIL!\n"
+ "See: https://datatracker.ietf.org/doc/html/"
+ "draft-hardaker-dnsop-nsec3-guidance-03#section-4\n");
+
+ else if (nsec3_iterations > 100)
+ fprintf(stderr, "Warning! NSEC3 iterations larger than "
+ "100 may cause validating resolvers to return "
+ "insecure responses!\n"
+ "See: https://datatracker.ietf.org/doc/html/"
+ "draft-hardaker-dnsop-nsec3-guidance-03#section-4\n");
+
result = ldns_dnssec_zone_sign_nsec3_flg_mkmap(signed_zone,
added_rrs,
keys,
@@ -784,9 +1093,17 @@ main(int argc, char *argv[])
#ifdef HAVE_SSL
if (ERR_peek_error()) {
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(HAVE_LIBRESSL)
+#ifdef HAVE_ERR_LOAD_CRYPTO_STRINGS
ERR_load_crypto_strings();
+#endif
+#endif
ERR_print_errors_fp(stderr);
- ERR_free_strings();
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(HAVE_LIBRESSL)
+#ifdef HAVE_ERR_FREE_STRINGS
+ ERR_free_strings ();
+#endif
+#endif
}
#endif
exit(EXIT_FAILURE);
@@ -801,19 +1118,29 @@ main(int argc, char *argv[])
ldns_dnssec_zone_free(signed_zone);
ldns_zone_deep_free(orig_zone);
ldns_rr_list_deep_free(added_rrs);
-
+ ldns_rdf_deep_free(origin);
LDNS_FREE(outputfile_name);
-
- CRYPTO_cleanup_all_ex_data();
+
+#ifndef OPENSSL_NO_ENGINE
+ shutdown_openssl ( engine );
+#else
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#ifdef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
+ CRYPTO_cleanup_all_ex_data ();
+#endif
+#endif
+#endif
free(prog);
exit(EXIT_SUCCESS);
}
-#else
+
+#else /* !HAVE_SSL */
int
-main(int argc, char **argv)
+main(int argc __attribute__((unused)),
+ char **argv __attribute__((unused)))
{
- fprintf(stderr, "ldns-signzone needs OpenSSL support, which has not been compiled in\n");
- return 1;
+ fprintf(stderr, "ldns-signzone needs OpenSSL support, which has not been compiled in\n");
+ return 1;
}
#endif /* HAVE_SSL */
diff --git a/examples/ldns-test-edns.c b/examples/ldns-test-edns.c
index 75a0f176c1cc..8a0372d62044 100644
--- a/examples/ldns-test-edns.c
+++ b/examples/ldns-test-edns.c
@@ -180,7 +180,7 @@ check_packet(uint8_t* wire, size_t len, int tp)
/* test EDNS0 presence, of OPT record */
/* LDNS forgets during pkt parse, but we test the ARCOUNT;
- * 0 additionals means no EDNS(on the wire), and after parsing the
+ * 0 additional means no EDNS(on the wire), and after parsing the
* same additional RRs as before means no EDNS OPT */
if(LDNS_ARCOUNT(wire) == 0 ||
ldns_pkt_arcount(p) == LDNS_ARCOUNT(wire)) {
diff --git a/examples/ldns-testns.1 b/examples/ldns-testns.1
index c8173e5d1a81..e21bcf08a902 100644
--- a/examples/ldns-testns.1
+++ b/examples/ldns-testns.1
@@ -1,7 +1,7 @@
.TH ldns-testns 1 "14 Dec 2006"
.SH NAME
ldns-testns \- simple fake nameserver tool
-.SH SYNOPSYS
+.SH SYNOPSIS
.B ldns-testns
[
.IR OPTION
@@ -11,7 +11,7 @@ ldns-testns \- simple fake nameserver tool
.SH DESCRIPTION
\fBldns-testns\fR can be used to provide answers to DNS queries for
testing. The answers are premade, and can be tailored to testing
-needs. The answers can be wildly invalid or unparseable.
+needs. The answers can be wildly invalid or unparsable.
This program is a debugging aid. It is not efficient, especially
with a long config file, but it can give any reply to any query.
diff --git a/examples/ldns-testns.c b/examples/ldns-testns.c
index 885453d3dcda..f1b9c7228d24 100644
--- a/examples/ldns-testns.c
+++ b/examples/ldns-testns.c
@@ -147,6 +147,15 @@ struct sockaddr_storage;
#include <netinet/igmp.h>
#endif
#include <errno.h>
+#include <signal.h>
+
+#ifdef HAVE_TARGETCONDITIONALS_H
+#include <TargetConditionals.h>
+#endif
+
+#if defined(TARGET_OS_TV) || defined(TARGET_OS_WATCH)
+#undef HAVE_FORK
+#endif
#define INBUF_SIZE 4096 /* max size for incoming queries */
#define DEFAULT_PORT 53 /* default if no -p port is specified */
@@ -272,7 +281,7 @@ handle_udp(int udp_sock, struct entry* entries, int *count)
&userdata, do_verbose?logfile:0);
}
-static void
+static int
read_n_bytes(int sock, uint8_t* buf, size_t sz)
{
size_t count = 0;
@@ -280,14 +289,14 @@ read_n_bytes(int sock, uint8_t* buf, size_t sz)
ssize_t nb = recv(sock, (void*)(buf+count), sz-count, 0);
if(nb < 0) {
log_msg("recv(): %s\n", strerror(errno));
- return;
+ return -1;
} else if(nb == 0) {
log_msg("recv: remote end closed the channel\n");
- memset(buf+count, 0, sz-count);
- return;
+ return sz-count;
}
count += nb;
}
+ return 0;
}
static void
@@ -325,7 +334,7 @@ handle_tcp(int tcp_sock, struct entry* entries, int *count)
struct sockaddr_storage addr_him;
socklen_t hislen;
uint8_t inbuf[INBUF_SIZE];
- uint16_t tcplen;
+ uint16_t tcplen = 0;
struct handle_tcp_userdata userdata;
/* accept */
@@ -336,23 +345,58 @@ handle_tcp(int tcp_sock, struct entry* entries, int *count)
}
userdata.s = s;
- /* tcp recv */
- read_n_bytes(s, (uint8_t*)&tcplen, sizeof(tcplen));
- tcplen = ntohs(tcplen);
- if(tcplen >= INBUF_SIZE) {
- log_msg("query %d bytes too large, buffer %d bytes.\n",
- tcplen, INBUF_SIZE);
+ while(1) {
+ /* tcp recv */
+ if (read_n_bytes(s, (uint8_t*)&tcplen, sizeof(tcplen))) {
#ifndef USE_WINSOCK
- close(s);
+ close(s);
#else
- closesocket(s);
+ closesocket(s);
#endif
- return;
- }
- read_n_bytes(s, inbuf, tcplen);
+ return;
+ }
+ tcplen = ntohs(tcplen);
+ if(tcplen >= INBUF_SIZE) {
+ log_msg("query %d bytes too large, buffer %d bytes.\n",
+ tcplen, INBUF_SIZE);
+#ifndef USE_WINSOCK
+ close(s);
+#else
+ closesocket(s);
+#endif
+ return;
+ }
+ if (read_n_bytes(s, inbuf, tcplen)) {
+#ifndef USE_WINSOCK
+ close(s);
+#else
+ closesocket(s);
+#endif
+ return;
+ }
- handle_query(inbuf, (ssize_t) tcplen, entries, count, transport_tcp,
- send_tcp, &userdata, do_verbose?logfile:0);
+ handle_query(inbuf, (ssize_t) tcplen, entries, count, transport_tcp,
+ send_tcp, &userdata, do_verbose?logfile:0);
+
+ /* another query straight away? */
+ if(1) {
+ fd_set rset;
+ struct timeval tv;
+ int ret;
+ FD_ZERO(&rset);
+ FD_SET(s, &rset);
+ tv.tv_sec = 0;
+ tv.tv_usec = 100*1000;
+ ret = select(s+1, &rset, NULL, NULL, &tv);
+ if(ret < 0) {
+ error("select(): %s\n", strerror(errno));
+ }
+ if(ret == 0) {
+ /* timeout */
+ break;
+ }
+ }
+ }
#ifndef USE_WINSOCK
close(s);
#else
@@ -407,7 +451,7 @@ forkit(int number)
int i;
for(i=0; i<number; i++)
{
-#ifndef HAVE_FORK
+#if !defined(HAVE_FORK) || !defined(HAVE_FORK_AVAILABLE)
#ifndef USE_WINSOCK
log_msg("fork() not available.\n");
exit(1);
@@ -499,6 +543,9 @@ main(int argc, char **argv)
log_msg("Reading datafile %s\n", datafile);
entries = read_datafile(datafile, 0);
+#ifdef SIGPIPE
+ (void)signal(SIGPIPE, SIG_IGN);
+#endif
#ifdef USE_WINSOCK
if(WSAStartup(MAKEWORD(2,2), &wsa_data) != 0)
error("WSAStartup failed\n");
diff --git a/examples/ldns-testpkts.c b/examples/ldns-testpkts.c
index cc339790df3c..05a54c583888 100644
--- a/examples/ldns-testpkts.c
+++ b/examples/ldns-testpkts.c
@@ -35,6 +35,7 @@ static const char* prog_name = "ldns-testpkts";
void verbose(int lvl, const char* msg, ...) ATTR_FORMAT(printf, 2, 3);
/** print error and exit */
+static void error(const char* msg, ...) __attribute__((noreturn));
static void error(const char* msg, ...)
{
va_list args;
@@ -833,7 +834,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count,
status = ldns_wire2pkt(&query_pkt, inbuf, (size_t)inlen);
if (status != LDNS_STATUS_OK) {
verbose(1, "Got bad packet: %s\n", ldns_get_errorstr_by_id(status));
- ldns_rdf_free(stop_command);
+ ldns_rdf_deep_free(stop_command);
return;
}
@@ -854,7 +855,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count,
if(!entry || !entry->reply_list) {
verbose(1, "no answer packet for this query, no reply.\n");
ldns_pkt_free(query_pkt);
- ldns_rdf_free(stop_command);
+ ldns_rdf_deep_free(stop_command);
return;
}
for(p = entry->reply_list; p; p = p->next)
@@ -873,7 +874,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count,
if (status != LDNS_STATUS_OK) {
verbose(1, "Error creating answer: %s\n", ldns_get_errorstr_by_id(status));
ldns_pkt_free(query_pkt);
- ldns_rdf_free(stop_command);
+ ldns_rdf_deep_free(stop_command);
return;
}
ldns_pkt_free(answer_pkt);
@@ -898,7 +899,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count,
if (status != LDNS_STATUS_OK) {
verbose(1, "Error creating answer: %s\n", ldns_get_errorstr_by_id(status));
ldns_pkt_free(query_pkt);
- ldns_rdf_free(stop_command);
+ ldns_rdf_deep_free(stop_command);
return;
}
ldns_pkt_free(answer_pkt);
@@ -921,7 +922,7 @@ handle_query(uint8_t* inbuf, ssize_t inlen, struct entry* entries, int* count,
answer_size = 0;
}
ldns_pkt_free(query_pkt);
- ldns_rdf_free(stop_command);
+ ldns_rdf_deep_free(stop_command);
}
/** delete the list of reply packets */
diff --git a/examples/ldns-verify-zone.1.in b/examples/ldns-verify-zone.1.in
index 2cee807f250c..c37cb7912a11 100644
--- a/examples/ldns-verify-zone.1.in
+++ b/examples/ldns-verify-zone.1.in
@@ -13,6 +13,8 @@ RRSIG resource records are checked against the DNSKEY set at the zone apex.
Each name is checked for an NSEC(3), if appropriate.
+If ZONEMD resource records are present, one of them needs to match the zone content.
+
.SH OPTIONS
.TP
\fB-h\fR
@@ -72,6 +74,17 @@ Set the verbosity level (default 3):
5: Print the zone after it has been read, the result,
any errors, and the names that are being checked
+.TP
+\fB-Z\fR
+Requires a valid ZONEMD RR to be present. When given once, this option will
+permit verifying only the ZONEMD RR of an unsigned zone. When given more than
+once, the zone needs to be validly DNSSEC signed as well.
+
+.TP
+\fB-ZZZ\fR
+When three times a \fB-Z\fR option is given, the ZONEMD RR to be verified is
+considered "detached" and does not need to have valid signatures.
+
.LP
\fIperiod\fRs are given in ISO 8601 duration format:
.RS
diff --git a/examples/ldns-verify-zone.c b/examples/ldns-verify-zone.c
index 8a438cef9251..ac076cd1afe7 100644
--- a/examples/ldns-verify-zone.c
+++ b/examples/ldns-verify-zone.c
@@ -113,7 +113,9 @@ print_rr_status_error(FILE* stream, ldns_rr* rr, ldns_status status)
if (status != LDNS_STATUS_OK) {
print_rr_error(stream, rr, ldns_get_errorstr_by_id(status));
if (verbosity > 0 && status == LDNS_STATUS_SSL_ERR) {
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
ERR_load_crypto_strings();
+#endif
ERR_print_errors_fp(stream);
}
}
@@ -168,24 +170,31 @@ static ldns_status
verify_rrs(ldns_rr_list* rrset_rrs, ldns_dnssec_rrs* cur_sig,
ldns_rr_list* keys)
{
- ldns_rr_list* good_keys;
ldns_status status, result = LDNS_STATUS_OK;
+ ldns_dnssec_rrs *cur_sig_bak = cur_sig;
+ /* A single valid signature validates the RRset */
while (cur_sig) {
- good_keys = ldns_rr_list_new();
- status = ldns_verify_rrsig_keylist_time(rrset_rrs, cur_sig->rr,
- keys, check_time, good_keys);
+ if (ldns_verify_rrsig_keylist_time( rrset_rrs, cur_sig->rr
+ , keys, check_time, NULL)
+ || rrsig_check_time_margins(cur_sig->rr))
+ cur_sig = cur_sig->next;
+ else
+ return LDNS_STATUS_OK;
+ }
+ /* Without any valid signature, do print all errors. */
+ for (cur_sig = cur_sig_bak; cur_sig; cur_sig = cur_sig->next) {
+ status = ldns_verify_rrsig_keylist_time(rrset_rrs,
+ cur_sig->rr, keys, check_time, NULL);
status = status ? status
- : rrsig_check_time_margins(cur_sig->rr);
- if (status != LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY ||
- !no_nomatch_msg) {
-
- print_rrs_status_error(myerr, rrset_rrs, status,
- cur_sig);
- }
+ : rrsig_check_time_margins(cur_sig->rr);
+ if (!status)
+ ; /* pass */
+ else if (!no_nomatch_msg || status !=
+ LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY)
+ print_rrs_status_error(
+ myerr, rrset_rrs, status, cur_sig);
update_error(&result, status);
- ldns_rr_list_free(good_keys);
- cur_sig = cur_sig->next;
}
return result;
}
@@ -400,7 +409,8 @@ verify_nsec(ldns_dnssec_zone* zone, ldns_rbnode_t *cur_node,
static ldns_status
verify_dnssec_name(ldns_rdf *zone_name, ldns_dnssec_zone* zone,
- ldns_rbnode_t *cur_node, ldns_rr_list *keys)
+ ldns_rbnode_t *cur_node, ldns_rr_list *keys,
+ bool detached_zonemd)
{
ldns_status result = LDNS_STATUS_OK;
ldns_status status;
@@ -427,7 +437,8 @@ verify_dnssec_name(ldns_rdf *zone_name, ldns_dnssec_zone* zone,
fprintf(myerr, "\t");
print_type(myerr, cur_rrset->type);
fprintf(myerr, " has signature(s),"
- " but is glue\n");
+ " but is occluded"
+ " (or glue)\n");
}
result = LDNS_STATUS_ERR;
}
@@ -438,7 +449,8 @@ verify_dnssec_name(ldns_rdf *zone_name, ldns_dnssec_zone* zone,
fprintf(myerr, "Error: ");
ldns_rdf_print(myerr, name->name);
fprintf(myerr, " has an NSEC(3),"
- " but is glue\n");
+ " but is occluded"
+ " (or glue)\n");
}
result = LDNS_STATUS_ERR;
}
@@ -461,7 +473,10 @@ verify_dnssec_name(ldns_rdf *zone_name, ldns_dnssec_zone* zone,
cur_rrset->type == LDNS_RR_TYPE_DS)) ||
(!on_delegation_point &&
cur_rrset->type != LDNS_RR_TYPE_RRSIG &&
- cur_rrset->type != LDNS_RR_TYPE_NSEC)) {
+ cur_rrset->type != LDNS_RR_TYPE_NSEC &&
+
+ ( cur_rrset->type != LDNS_RR_TYPE_ZONEMD
+ || !detached_zonemd || cur_rrset->signatures))) {
status = verify_dnssec_rrset(zone_name,
name->name, cur_rrset, keys);
@@ -501,16 +516,28 @@ add_keys_with_matching_ds(ldns_dnssec_rrsets* from_keys, ldns_rr_list *dss,
}
}
+static ldns_resolver *p_ldns_new_res(ldns_resolver** new_res, ldns_status *s)
+{
+ assert(new_res && s);
+ if (!(*s = ldns_resolver_new_frm_file(new_res, NULL))) {
+ ldns_resolver_set_dnssec(*new_res, 1);
+ ldns_resolver_set_dnssec_cd(*new_res, 1);
+ return *new_res;
+ }
+ ldns_resolver_free(*new_res);
+ return (*new_res = NULL);
+}
+
static ldns_status
sigchase(ldns_resolver* res, ldns_rdf *zone_name, ldns_dnssec_rrsets *zonekeys,
ldns_rr_list *keys)
{
ldns_dnssec_rrs* cur_key;
ldns_status status;
- bool free_resolver = false;
- ldns_rdf* parent_name;
- ldns_rr_list* parent_keys;
- ldns_rr_list* ds_keys;
+ ldns_resolver* new_res = NULL;
+ ldns_rdf* parent_name = NULL;
+ ldns_rr_list* parent_keys = NULL;
+ ldns_rr_list* ds_keys = NULL;
add_keys_with_matching_ds(zonekeys, keys, keys);
@@ -525,63 +552,66 @@ sigchase(ldns_resolver* res, ldns_rdf *zone_name, ldns_dnssec_rrsets *zonekeys,
/* Continue online on validation failure when the -S option was given.
*/
- if (do_sigchase &&
- status == LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY &&
- ldns_dname_label_count(zone_name) > 0 ) {
-
- if (!res) {
- if ((status = ldns_resolver_new_frm_file(&res, NULL))){
- ldns_resolver_free(res);
- if (verbosity > 0) {
- fprintf(myerr,
- "Could not create resolver: "
- "%s\n",
- ldns_get_errorstr_by_id(status)
- );
- }
- return status;
- }
- free_resolver = true;
- ldns_resolver_set_dnssec(res,1);
- ldns_resolver_set_dnssec_cd(res, 1);
+ if ( !do_sigchase
+ || status != LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY
+ || ldns_dname_label_count(zone_name) == 0 ) {
+ if (verbosity > 0) {
+ fprintf(myerr, "Cannot chase the root: %s\n"
+ , ldns_get_errorstr_by_id(status));
}
- if ((parent_name = ldns_dname_left_chop(zone_name))) {
- /*
- * Use the (authenticated) keys of the parent zone ...
- */
- parent_keys = ldns_fetch_valid_domain_keys(res,
- parent_name, keys, &status);
- ldns_rdf_deep_free(parent_name);
- /*
- * ... to validate the DS for the zone ...
- */
- ds_keys = ldns_validate_domain_ds(res, zone_name,
- parent_keys);
- ldns_rr_list_free(parent_keys);
-
- /*
- * ... to use it to add the KSK to the trusted keys ...
- */
- add_keys_with_matching_ds(zonekeys, ds_keys, keys);
- ldns_rr_list_free(ds_keys);
+ } else if (!res && !(res = p_ldns_new_res(&new_res, &status))) {
+ if (verbosity > 0) {
+ fprintf(myerr, "Could not create resolver: %s\n"
+ , ldns_get_errorstr_by_id(status));
+ }
+ } else if (!(parent_name = ldns_dname_left_chop(zone_name))) {
+ status = LDNS_STATUS_MEM_ERR;
- /*
- * ... to validate all zonekeys ...
- */
- status = verify_dnssec_rrset(zone_name, zone_name,
- zonekeys, keys);
- } else {
- status = LDNS_STATUS_MEM_ERR;
+ /*
+ * Use the (authenticated) keys of the parent zone ...
+ */
+ } else if (!(parent_keys = ldns_fetch_valid_domain_keys(res,
+ parent_name, keys, &status))) {
+ if (verbosity > 0) {
+ fprintf(myerr,
+ "Could not get valid DNSKEY RRset to "
+ "validate domain's DS: %s\n",
+ ldns_get_errorstr_by_id(status)
+ );
}
- if (free_resolver) {
- ldns_resolver_deep_free(res);
+ /*
+ * ... to validate the DS for the zone ...
+ */
+ } else if (!(ds_keys = ldns_validate_domain_ds(res, zone_name,
+ parent_keys))) {
+ status = LDNS_STATUS_CRYPTO_NO_TRUSTED_DS;
+ if (verbosity > 0) {
+ fprintf(myerr,
+ "Could not get valid DS RRset for domain: %s\n",
+ ldns_get_errorstr_by_id(status)
+ );
}
-
+ } else {
+ /*
+ * ... to use it to add the KSK to the trusted keys ...
+ */
+ add_keys_with_matching_ds(zonekeys, ds_keys, keys);
+
+ /*
+ * ... to validate all zonekeys ...
+ */
+ status = verify_dnssec_rrset(zone_name, zone_name,
+ zonekeys, keys);
}
/*
* ... so they can all be added to our list of trusted keys.
*/
+ ldns_resolver_deep_free(new_res);
+ ldns_rdf_deep_free(parent_name);
+ ldns_rr_list_free(parent_keys);
+ ldns_rr_list_free(ds_keys);
+
if (status == LDNS_STATUS_OK)
for (cur_key = zonekeys->rrs; cur_key; cur_key = cur_key->next)
ldns_rr_list_push_rr(keys, cur_key->rr);
@@ -590,7 +620,8 @@ sigchase(ldns_resolver* res, ldns_rdf *zone_name, ldns_dnssec_rrsets *zonekeys,
static ldns_status
verify_dnssec_zone(ldns_dnssec_zone *dnssec_zone, ldns_rdf *zone_name,
- ldns_rr_list *keys, bool apexonly, int percentage)
+ ldns_rr_list *keys, bool apexonly, int percentage,
+ bool detached_zonemd)
{
ldns_rbnode_t *cur_node;
ldns_dnssec_rrsets *cur_key_rrset;
@@ -631,7 +662,7 @@ verify_dnssec_zone(ldns_dnssec_zone *dnssec_zone, ldns_rdf *zone_name,
*/
assert( cur_node->data == dnssec_zone->soa );
/*
- * Allthough the percentage option doesn't make sense
+ * Although the percentage option doesn't make sense
* here, we set it to 100 to force the first node to
* be checked.
*/
@@ -642,7 +673,8 @@ verify_dnssec_zone(ldns_dnssec_zone *dnssec_zone, ldns_rdf *zone_name,
if (percentage == 100
|| ((random() % 100) >= 100 - percentage)) {
status = verify_dnssec_name(zone_name,
- dnssec_zone, cur_node, keys);
+ dnssec_zone, cur_node, keys,
+ detached_zonemd);
update_error(&result, status);
if (apexonly)
break;
@@ -663,6 +695,8 @@ static void print_usage(FILE *out, const char *progname)
"and verifies all signatures\n");
fprintf(out, "It also checks the NSEC(3) chain, but it "
"will error on opted-out delegations\n");
+ fprintf(out, "It also checks whether ZONEMDs are present, and if so, "
+ "needs one of them to match the zone's data.\n");
fprintf(out, "\nOPTIONS:\n");
fprintf(out, "\t-h\t\tshow this text\n");
fprintf(out, "\t-a\t\tapex only, check only the zone apex\n");
@@ -690,6 +724,12 @@ static void print_usage(FILE *out, const char *progname)
"for validating it regardless.\n");
fprintf(out, "\t-v\t\tshows the version and exits\n");
fprintf(out, "\t-V [0-5]\tset verbosity level (default 3)\n");
+ fprintf(out, "\t-Z\t\tRequires a valid ZONEMD RR to be present.\n");
+ fprintf(out, "\t\t\tWhen given once, this option will permit verifying"
+ "\n\t\t\tjust the ZONEMD RR of an unsigned zone. When given "
+ "\n\t\t\tmore than once, the zone needs to be validly DNSSEC"
+ "\n\t\t\tsigned as well. With three times a -Z option (-ZZZ)"
+ "\n\t\t\ta ZONEMD RR without signatures is allowed.");
fprintf(out, "\n<period>s are given in ISO 8601 duration format: "
"P[n]Y[n]M[n]DT[n]H[n]M[n]S\n");
fprintf(out, "\nif no file is given standard input is read\n");
@@ -712,12 +752,14 @@ main(int argc, char **argv)
ldns_rr_list *keys = ldns_rr_list_new();
size_t nkeys = 0;
const char *progname = argv[0];
+ int zonemd_required = 0;
+ ldns_dnssec_rrsets *zonemd_rrset;
check_time = ldns_time(NULL);
myout = stdout;
myerr = stderr;
- while ((c = getopt(argc, argv, "ae:hi:k:vV:p:St:")) != -1) {
+ while ((c = getopt(argc, argv, "ae:hi:k:vV:p:St:Z")) != -1) {
switch(c) {
case 'a':
apexonly = true;
@@ -813,6 +855,9 @@ main(int argc, char **argv)
case 'V':
verbosity = atoi(optarg);
break;
+ case 'Z':
+ zonemd_required += 1;
+ break;
}
}
if (do_sigchase && nkeys == 0) {
@@ -851,53 +896,71 @@ main(int argc, char **argv)
s = ldns_dnssec_zone_new_frm_fp_l(&dnssec_zone, fp, NULL, 0,
LDNS_RR_CLASS_IN, &line_nr);
- if (s == LDNS_STATUS_OK) {
- if (!dnssec_zone->soa) {
- if (verbosity > 0) {
- fprintf(myerr,
- "; Error: no SOA in the zone\n");
- }
- exit(EXIT_FAILURE);
- }
-
- result = ldns_dnssec_zone_mark_glue(dnssec_zone);
- if (result != LDNS_STATUS_OK) {
- if (verbosity > 0) {
- fprintf(myerr,
- "There were errors identifying the "
- "glue in the zone\n");
- }
+ if (s != LDNS_STATUS_OK) {
+ if (verbosity > 0) {
+ fprintf(myerr, "%s at line %d\n",
+ ldns_get_errorstr_by_id(s), line_nr);
}
- if (verbosity >= 5) {
- ldns_dnssec_zone_print(myout, dnssec_zone);
+ exit(EXIT_FAILURE);
+ }
+ if (!dnssec_zone->soa) {
+ if (verbosity > 0) {
+ fprintf(myerr,
+ "; Error: no SOA in the zone\n");
}
+ exit(EXIT_FAILURE);
+ }
+ result = ldns_dnssec_zone_mark_glue(dnssec_zone);
+ if (result != LDNS_STATUS_OK) {
+ if (verbosity > 0) {
+ fprintf(myerr,
+ "There were errors identifying the "
+ "glue in the zone\n");
+ }
+ }
+ if (verbosity >= 5) {
+ ldns_dnssec_zone_print(myout, dnssec_zone);
+ }
+ zonemd_rrset = ldns_dnssec_zone_find_rrset(dnssec_zone,
+ dnssec_zone->soa->name, LDNS_RR_TYPE_ZONEMD);
+
+ if (zonemd_required == 1
+ && !ldns_dnssec_zone_find_rrset(dnssec_zone,
+ dnssec_zone->soa->name, LDNS_RR_TYPE_DNSKEY))
+ result = LDNS_STATUS_OK;
+ else
result = verify_dnssec_zone(dnssec_zone,
dnssec_zone->soa->name, keys, apexonly,
- percentage);
+ percentage, zonemd_required > 2);
- if (result == LDNS_STATUS_OK) {
- if (verbosity >= 3) {
- fprintf(myout,
- "Zone is verified and complete\n");
- }
- } else {
- if (verbosity > 0) {
- fprintf(myerr,
- "There were errors in the zone\n");
- }
- }
+ if (zonemd_rrset) {
+ ldns_status zonemd_result
+ = ldns_dnssec_zone_verify_zonemd(dnssec_zone);
+
+ if (zonemd_result)
+ fprintf( myerr, "Could not validate zone digest: %s\n"
+ , ldns_get_errorstr_by_id(zonemd_result));
- ldns_dnssec_zone_deep_free(dnssec_zone);
- } else {
- if (verbosity > 0) {
- fprintf(myerr, "%s at %d\n",
- ldns_get_errorstr_by_id(s), line_nr);
+ else if (verbosity > 3)
+ fprintf( myout
+ , "Zone digest matched the zone content\n");
+
+ if (zonemd_result)
+ result = zonemd_result;
+
+ } else if (zonemd_required)
+ result = LDNS_STATUS_NO_ZONEMD;
+
+ if (result == LDNS_STATUS_OK) {
+ if (verbosity >= 3) {
+ fprintf(myout, "Zone is verified and complete\n");
}
- exit(EXIT_FAILURE);
- }
- fclose(fp);
+ } else if (verbosity > 0)
+ fprintf(myerr, "There were errors in the zone\n");
+ ldns_dnssec_zone_deep_free(dnssec_zone);
+ fclose(fp);
exit(result);
}
diff --git a/examples/ldns-walk.c b/examples/ldns-walk.c
index 2afe24e24aed..3710098adb76 100644
--- a/examples/ldns-walk.c
+++ b/examples/ldns-walk.c
@@ -120,7 +120,7 @@ create_plus_1_dname(ldns_rdf *dname)
return label;
}
-static ldns_status
+static void
query_type_bitmaps(ldns_resolver *res,
uint16_t res_flags,
const ldns_rdf *name,
@@ -169,7 +169,7 @@ query_type_bitmaps(ldns_resolver *res,
ldns_pkt_print(stdout, answer_pkt);
}
/* hmm, this does not give us the right records
- * when askking for type NS above the delegation
+ * when asking for type NS above the delegation
* (or, in fact, when the delegated zone is
* served by this server either)
* do we need to special case NS like NSEC?
@@ -191,11 +191,8 @@ query_type_bitmaps(ldns_resolver *res,
}
}
}
-
pos += (uint16_t) bitmap_length;
}
-
- return LDNS_STATUS_OK;
}
@@ -611,7 +608,7 @@ main(int argc, char *argv[])
}
if (!next_dname) {
/* apparently the zone also has prepended data (i.e. a.example and www.a.example,
- * The www comes after the a but befpre a\\000, so we need to make another name (\\000.a)
+ * The www comes after the a but before a\\000, so we need to make another name (\\000.a)
*/
if (last_dname_p) {
ldns_rdf_deep_free(last_dname_p);
@@ -639,7 +636,7 @@ main(int argc, char *argv[])
/* ok, so now we know all the types present at this name,
* query for those one by one (...)
*/
- status = query_type_bitmaps(res, LDNS_RD, ldns_rr_owner(nsec_rr),
+ query_type_bitmaps(res, LDNS_RD, ldns_rr_owner(nsec_rr),
ldns_rr_rdf(nsec_rr, 1));
/* print this nsec and its signatures too */
ldns_rr_print(stdout, nsec_rr);
diff --git a/examples/ldns-zsplit.c b/examples/ldns-zsplit.c
index 0843c589e9cf..618a57b03f7d 100644
--- a/examples/ldns-zsplit.c
+++ b/examples/ldns-zsplit.c
@@ -40,7 +40,7 @@ usage(FILE *f, char *progname)
fprintf(f, " -n NUMBER\tsplit after this many RRs\n");
fprintf(f, " -o ORIGIN\tuse this as initial origin, for zones starting with @\n");
fprintf(f, " -z\t\tsort the zone prior to splitting. The current ldns zone\n");
- fprintf(f, " \t\timplementation makes this unuseable for large zones.\n");
+ fprintf(f, " \t\timplementation makes this unusable for large zones.\n");
fprintf(f, " -v\t\tshow version number and exit\n");
}
diff --git a/examples/ldnsd.c b/examples/ldnsd.c
index c742f04d9445..e39c4283e221 100644
--- a/examples/ldnsd.c
+++ b/examples/ldnsd.c
@@ -223,7 +223,7 @@ main(int argc, char **argv)
if (status != LDNS_STATUS_OK) {
printf("Error creating answer: %s\n", ldns_get_errorstr_by_id(status));
} else {
- nb = sendto(sock, (void*)outbuf, answer_size, 0,
+ (void) sendto(sock, (void*)outbuf, answer_size, 0,
&addr_him, hislen);
}
diff --git a/host2str.c b/host2str.c
index 747d54310cf9..7282db9ee2ef 100644
--- a/host2str.c
+++ b/host2str.c
@@ -28,6 +28,14 @@
#include <time.h>
#include <sys/time.h>
+#ifdef HAVE_SSL
+#include <openssl/bn.h>
+#include <openssl/rsa.h>
+#ifdef USE_DSA
+#include <openssl/dsa.h>
+#endif
+#endif
+
#ifndef INET_ADDRSTRLEN
#define INET_ADDRSTRLEN 16
#endif
@@ -35,6 +43,10 @@
#define INET6_ADDRSTRLEN 46
#endif
+/* Internal helper function */
+ldns_edns_option_list*
+pkt_edns_data2edns_option_list(const ldns_rdf *edns_data);
+
/* lookup tables for standard DNS stuff */
/* Taken from RFC 2535, section 7. */
@@ -46,29 +58,28 @@ ldns_lookup_table ldns_algorithms[] = {
{ LDNS_RSASHA1, "RSASHA1" },
{ LDNS_DSA_NSEC3, "DSA-NSEC3-SHA1" },
{ LDNS_RSASHA1_NSEC3, "RSASHA1-NSEC3-SHA1" },
-#ifdef USE_SHA2
{ LDNS_RSASHA256, "RSASHA256"},
{ LDNS_RSASHA512, "RSASHA512"},
-#endif
-#ifdef USE_GOST
{ LDNS_ECC_GOST, "ECC-GOST"},
-#endif
-#ifdef USE_ECDSA
{ LDNS_ECDSAP256SHA256, "ECDSAP256SHA256"},
{ LDNS_ECDSAP384SHA384, "ECDSAP384SHA384"},
-#endif
-#ifdef USE_ED25519
{ LDNS_ED25519, "ED25519"},
-#endif
-#ifdef USE_ED448
{ LDNS_ED448, "ED448"},
-#endif
{ LDNS_INDIRECT, "INDIRECT" },
{ LDNS_PRIVATEDNS, "PRIVATEDNS" },
{ LDNS_PRIVATEOID, "PRIVATEOID" },
{ 0, NULL }
};
+/* Hashing algorithms used in the DS record */
+ldns_lookup_table ldns_hashes[] = {
+ {LDNS_SHA1 , "SHA1" }, /* RFC 4034 */
+ {LDNS_SHA256 , "SHA256" }, /* RFC 4509 */
+ {LDNS_HASH_GOST, "HASH-GOST" }, /* RFC 5933 */
+ {LDNS_SHA384 , "SHA384" }, /* RFC 6605 */
+ { 0, NULL }
+};
+
/* Taken from RFC 4398 */
ldns_lookup_table ldns_cert_algorithms[] = {
{ LDNS_CERT_PKIX, "PKIX" },
@@ -406,7 +417,7 @@ ldns_rdf2buffer_str_time(ldns_buffer *output, const ldns_rdf *rdf)
char date_buf[16];
memset(&tm, 0, sizeof(tm));
- if (ldns_serial_arithmitics_gmtime_r(ldns_rdf2native_int32(rdf), time(NULL), &tm)
+ if (ldns_serial_arithmetics_gmtime_r(ldns_rdf2native_int32(rdf), time(NULL), &tm)
&& strftime(date_buf, 15, "%Y%m%d%H%M%S", &tm)) {
ldns_buffer_printf(output, "%s", date_buf);
}
@@ -475,9 +486,18 @@ ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf)
ldns_status
ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf)
{
- size_t size = ldns_b64_ntop_calculate_size(ldns_rdf_size(rdf));
- char *b64 = LDNS_XMALLOC(char, size);
- if(!b64) return LDNS_STATUS_MEM_ERR;
+ size_t size;
+ char *b64;
+
+ if (ldns_rdf_size(rdf) == 0) {
+ ldns_buffer_printf(output, "0");
+ return ldns_buffer_status(output);
+ } else
+ size = ldns_b64_ntop_calculate_size(ldns_rdf_size(rdf));
+
+ if (!(b64 = LDNS_XMALLOC(char, size)))
+ return LDNS_STATUS_MEM_ERR;
+
if (ldns_b64_ntop(ldns_rdf_data(rdf), ldns_rdf_size(rdf), b64, size)) {
ldns_buffer_printf(output, "%s", b64);
}
@@ -692,8 +712,8 @@ ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf)
uint32_t longitude;
uint32_t latitude;
uint32_t altitude;
- char northerness;
- char easterness;
+ char latitude_hemisphere;
+ char longitude_hemisphere;
uint32_t h;
uint32_t m;
double s;
@@ -717,10 +737,10 @@ ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf)
altitude = ldns_read_uint32(&ldns_rdf_data(rdf)[12]);
if (latitude > equator) {
- northerness = 'N';
+ latitude_hemisphere = 'N';
latitude = latitude - equator;
} else {
- northerness = 'S';
+ latitude_hemisphere = 'S';
latitude = equator - latitude;
}
h = latitude / (1000 * 60 * 60);
@@ -729,13 +749,13 @@ ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf)
latitude = latitude % (1000 * 60);
s = (double) latitude / 1000.0;
ldns_buffer_printf(output, "%02u %02u %0.3f %c ",
- h, m, s, northerness);
+ h, m, s, latitude_hemisphere);
if (longitude > equator) {
- easterness = 'E';
+ longitude_hemisphere = 'E';
longitude = longitude - equator;
} else {
- easterness = 'W';
+ longitude_hemisphere = 'W';
longitude = equator - longitude;
}
h = longitude / (1000 * 60 * 60);
@@ -744,8 +764,7 @@ ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf)
longitude = longitude % (1000 * 60);
s = (double) longitude / (1000.0);
ldns_buffer_printf(output, "%02u %02u %0.3f %c ",
- h, m, s, easterness);
-
+ h, m, s, longitude_hemisphere);
s = ((double) altitude) / 100;
s -= 100000;
@@ -834,6 +853,8 @@ ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf)
endservent();
#endif
}
+ /* exit from loop before integer overflow */
+ if(current_service == 65535) { break; }
}
return ldns_buffer_status(output);
}
@@ -1085,12 +1106,12 @@ ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf)
/* no gateway */
break;
case 1:
- gateway_data = LDNS_XMALLOC(uint8_t, LDNS_IP4ADDRLEN);
- if(!gateway_data)
- return LDNS_STATUS_MEM_ERR;
if (ldns_rdf_size(rdf) < offset + LDNS_IP4ADDRLEN) {
return LDNS_STATUS_ERR;
}
+ gateway_data = LDNS_XMALLOC(uint8_t, LDNS_IP4ADDRLEN);
+ if(!gateway_data)
+ return LDNS_STATUS_MEM_ERR;
memcpy(gateway_data, &data[offset], LDNS_IP4ADDRLEN);
gateway = ldns_rdf_new(LDNS_RDF_TYPE_A,
LDNS_IP4ADDRLEN , gateway_data);
@@ -1101,12 +1122,12 @@ ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf)
}
break;
case 2:
- gateway_data = LDNS_XMALLOC(uint8_t, LDNS_IP6ADDRLEN);
- if(!gateway_data)
- return LDNS_STATUS_MEM_ERR;
if (ldns_rdf_size(rdf) < offset + LDNS_IP6ADDRLEN) {
return LDNS_STATUS_ERR;
}
+ gateway_data = LDNS_XMALLOC(uint8_t, LDNS_IP6ADDRLEN);
+ if(!gateway_data)
+ return LDNS_STATUS_MEM_ERR;
memcpy(gateway_data, &data[offset], LDNS_IP6ADDRLEN);
offset += LDNS_IP6ADDRLEN;
gateway =
@@ -1129,6 +1150,7 @@ ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf)
}
if (ldns_rdf_size(rdf) <= offset) {
+ ldns_rdf_deep_free(gateway);
return LDNS_STATUS_ERR;
}
public_key_size = ldns_rdf_size(rdf) - offset;
@@ -1263,7 +1285,7 @@ ldns_rdf2buffer_str_hip(ldns_buffer *output, const ldns_rdf *rdf)
ldns_buffer_printf(output, "%02x", (int) *data);
}
- ldns_buffer_write_u8(output, (uint8_t) ' ');
+ ldns_buffer_write_char(output, (uint8_t) ' ');
if (ldns_buffer_reserve(output,
ldns_b64_ntop_calculate_size(pk_size))) {
@@ -1281,6 +1303,319 @@ ldns_rdf2buffer_str_hip(ldns_buffer *output, const ldns_rdf *rdf)
return ldns_buffer_status(output);
}
+/* implementation mimicked from ldns_rdf2buffer_str_ipseckey */
+ldns_status
+ldns_rdf2buffer_str_amtrelay(ldns_buffer *output, const ldns_rdf *rdf)
+{
+ /* wire format from
+ * draft-ietf-mboned-driad-amt-discovery Section 4.2
+ */
+ uint8_t *data = ldns_rdf_data(rdf);
+ uint8_t precedence;
+ uint8_t discovery_optional;
+ uint8_t relay_type;
+
+ ldns_rdf *relay = NULL;
+ uint8_t *relay_data;
+
+ size_t offset = 0;
+ ldns_status status;
+
+ if (ldns_rdf_size(rdf) < 2) {
+ return LDNS_STATUS_WIRE_RDATA_ERR;
+ }
+ precedence = data[0];
+ discovery_optional = ((data[1] & 0x80) >> 7);
+ relay_type = data[1] & 0x7F;
+ offset = 2;
+
+ switch (relay_type) {
+ case 0:
+ /* no relay */
+ break;
+ case 1:
+ if (ldns_rdf_size(rdf) < offset + LDNS_IP4ADDRLEN) {
+ return LDNS_STATUS_ERR;
+ }
+ relay_data = LDNS_XMALLOC(uint8_t, LDNS_IP4ADDRLEN);
+ if(!relay_data)
+ return LDNS_STATUS_MEM_ERR;
+ memcpy(relay_data, &data[offset], LDNS_IP4ADDRLEN);
+ relay = ldns_rdf_new(LDNS_RDF_TYPE_A,
+ LDNS_IP4ADDRLEN , relay_data);
+ offset += LDNS_IP4ADDRLEN;
+ if(!relay) {
+ LDNS_FREE(relay_data);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ break;
+ case 2:
+ if (ldns_rdf_size(rdf) < offset + LDNS_IP6ADDRLEN) {
+ return LDNS_STATUS_ERR;
+ }
+ relay_data = LDNS_XMALLOC(uint8_t, LDNS_IP6ADDRLEN);
+ if(!relay_data)
+ return LDNS_STATUS_MEM_ERR;
+ memcpy(relay_data, &data[offset], LDNS_IP6ADDRLEN);
+ offset += LDNS_IP6ADDRLEN;
+ relay =
+ ldns_rdf_new(LDNS_RDF_TYPE_AAAA,
+ LDNS_IP6ADDRLEN, relay_data);
+ if(!relay) {
+ LDNS_FREE(relay_data);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ break;
+ case 3:
+ status = ldns_wire2dname(&relay, data,
+ ldns_rdf_size(rdf), &offset);
+ if(status != LDNS_STATUS_OK)
+ return status;
+ break;
+ default:
+ /* error? */
+ break;
+ }
+
+ if (ldns_rdf_size(rdf) != offset) {
+ ldns_rdf_deep_free(relay);
+ return LDNS_STATUS_ERR;
+ }
+ ldns_buffer_printf(output, "%u %u %u ",
+ precedence, discovery_optional, relay_type);
+ if (relay)
+ (void) ldns_rdf2buffer_str(output, relay);
+
+ ldns_rdf_deep_free(relay);
+ return ldns_buffer_status(output);
+}
+
+#ifdef RRTYPE_SVCB_HTTPS
+ldns_status svcparam_key2buffer_str(ldns_buffer *output, uint16_t key);
+
+static ldns_status
+svcparam_mandatory2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ if (sz % 2)
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ svcparam_key2buffer_str(output, ldns_read_uint16(data));
+ for (data += 2, sz -= 2; sz; data += 2, sz -= 2) {
+ ldns_buffer_write_char(output, ',');
+ svcparam_key2buffer_str(output, ldns_read_uint16(data));
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+svcparam_alpn2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ uint8_t *eod = data + sz, *dp;
+ bool quote = false;
+ size_t i;
+
+ for (dp = data; dp < eod && !quote; dp += 1 + *dp) {
+ if (dp + 1 + *dp > eod)
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ for (i = 0; i < *dp; i++)
+ if (isspace(dp[i + 1]))
+ break;
+ quote = i < *dp;
+ }
+ if (quote)
+ ldns_buffer_write_char(output, '"');
+ while (data < eod) {
+ uint8_t *eot = data + 1 + *data;
+
+ if (eot > eod)
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ if (eod - data < (int)sz)
+ ldns_buffer_write_char(output, ',');
+
+ for (data += 1; data < eot; data += 1) {
+ uint8_t ch = *data;
+
+ if (isprint(ch) || ch == '\t') {
+ if (ch == '"' || ch == ',' || ch == '\\')
+ ldns_buffer_write_char(output, '\\');
+ ldns_buffer_write_char(output, ch);
+ } else
+ ldns_buffer_printf(output, "\\%03u"
+ , (unsigned)ch);
+ }
+ }
+ if (quote)
+ ldns_buffer_write_char(output, '"');
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+svcparam_port2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ if (sz != 2)
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+ ldns_buffer_printf(output, "%d", (int)ldns_read_uint16(data));
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+svcparam_ipv4hint2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ char str[INET_ADDRSTRLEN];
+
+ if (sz % 4 || !inet_ntop(AF_INET, data, str, INET_ADDRSTRLEN))
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ ldns_buffer_write_chars(output, str);
+
+ for (data += 4, sz -= 4; sz ; data += 4, sz -= 4 ) {
+ ldns_buffer_write_char(output, ',');
+ if (!inet_ntop(AF_INET, data, str, INET_ADDRSTRLEN))
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ ldns_buffer_write_chars(output, str);
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+svcparam_ech2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ size_t str_sz = ldns_b64_ntop_calculate_size(sz);
+ int written;
+
+ if (!ldns_buffer_reserve(output, str_sz))
+ return LDNS_STATUS_MEM_ERR;
+
+ written = ldns_b64_ntop( data, sz
+ , (char *)ldns_buffer_current(output), str_sz);
+ if (written > 0)
+ ldns_buffer_skip(output, written);
+ else
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+svcparam_ipv6hint2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ char str[INET6_ADDRSTRLEN];
+
+ if (sz % 16 || !inet_ntop(AF_INET6, data, str, INET6_ADDRSTRLEN))
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ ldns_buffer_write_chars(output, str);
+
+ for (data += 16, sz -= 16; sz ; data += 16, sz -= 16) {
+ ldns_buffer_write_char(output, ',');
+ if (!inet_ntop(AF_INET6, data, str, INET6_ADDRSTRLEN))
+ return LDNS_STATUS_INVALID_SVCPARAM_VALUE;
+
+ ldns_buffer_write_chars(output, str);
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+svcparam_value2buffer_str(ldns_buffer *output, size_t sz, uint8_t *data)
+{
+ uint8_t *eod = data + sz, *dp;
+ bool quote = false;
+
+ for (dp = data; dp < eod && !isspace(*dp); dp++)
+ ; /* pass */
+
+ if ((quote = dp < eod))
+ ldns_buffer_write_char(output, '"');
+
+ for (dp = data; dp < eod; dp++) {
+ uint8_t ch = *dp;
+
+ if (isprint(ch) || ch == '\t') {
+ if (ch == '"' || ch == '\\')
+ ldns_buffer_write_char(output, '\\');
+ ldns_buffer_write_char(output, ch);
+ } else
+ ldns_buffer_printf(output, "\\%03u", (unsigned)ch);
+ }
+ if (quote)
+ ldns_buffer_write_char(output, '"');
+ return ldns_buffer_status(output);
+}
+
+ldns_status
+ldns_rdf2buffer_str_svcparams(ldns_buffer *output, const ldns_rdf *rdf)
+{
+ uint8_t *data, *dp, *next_dp = NULL;
+ size_t sz;
+ ldns_status st;
+
+ if (!output)
+ return LDNS_STATUS_NULL;
+
+ if (!rdf || !(data = ldns_rdf_data(rdf)) || !(sz = ldns_rdf_size(rdf)))
+ /* No svcparams is just fine. Just nothing to print. */
+ return LDNS_STATUS_OK;
+
+ for (dp = data; dp + 4 <= data + sz; dp = next_dp) {
+ ldns_svcparam_key key = ldns_read_uint16(dp);
+ uint16_t val_sz = ldns_read_uint16(dp + 2);
+
+ if ((next_dp = dp + 4 + val_sz) > data + sz)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ if (dp > data)
+ ldns_buffer_write_char(output, ' ');
+
+ if ((st = svcparam_key2buffer_str(output, key)))
+ return st;
+
+ if (val_sz == 0)
+ continue;
+ dp += 4;
+ ldns_buffer_write_char(output, '=');
+ switch (key) {
+ case LDNS_SVCPARAM_KEY_MANDATORY:
+ st = svcparam_mandatory2buffer_str(output, val_sz, dp);
+ break;
+ case LDNS_SVCPARAM_KEY_ALPN:
+ st = svcparam_alpn2buffer_str(output, val_sz, dp);
+ break;
+ case LDNS_SVCPARAM_KEY_NO_DEFAULT_ALPN:
+ return LDNS_STATUS_NO_SVCPARAM_VALUE_EXPECTED;
+ case LDNS_SVCPARAM_KEY_PORT:
+ st = svcparam_port2buffer_str(output, val_sz, dp);
+ break;
+ case LDNS_SVCPARAM_KEY_IPV4HINT:
+ st = svcparam_ipv4hint2buffer_str(output, val_sz, dp);
+ break;
+ case LDNS_SVCPARAM_KEY_ECH:
+ st = svcparam_ech2buffer_str(output, val_sz, dp);
+ break;
+ case LDNS_SVCPARAM_KEY_IPV6HINT:
+ st = svcparam_ipv6hint2buffer_str(output, val_sz, dp);
+ break;
+ default:
+ st = svcparam_value2buffer_str(output, val_sz, dp);
+ break;
+ }
+ if (st)
+ return st;
+ }
+ return ldns_buffer_status(output);
+}
+#else /* #ifdef RRTYPE_SVCB_HTTPS */
+ldns_status
+ldns_rdf2buffer_str_svcparams(ldns_buffer *output, const ldns_rdf *rdf)
+{
+ (void)output; (void)rdf;
+ return LDNS_STATUS_NOT_IMPL;
+}
+#endif /* #ifdef RRTYPE_SVCB_HTTPS */
+
static ldns_status
ldns_rdf2buffer_str_fmt(ldns_buffer *buffer,
const ldns_output_format* fmt, const ldns_rdf *rdf)
@@ -1396,6 +1731,12 @@ ldns_rdf2buffer_str_fmt(ldns_buffer *buffer,
case LDNS_RDF_TYPE_LONG_STR:
res = ldns_rdf2buffer_str_long_str(buffer, rdf);
break;
+ case LDNS_RDF_TYPE_AMTRELAY:
+ res = ldns_rdf2buffer_str_amtrelay(buffer, rdf);
+ break;
+ case LDNS_RDF_TYPE_SVCPARAMS:
+ res = ldns_rdf2buffer_str_svcparams(buffer, rdf);
+ break;
}
} else {
/** This will write mangled RRs */
@@ -1475,45 +1816,50 @@ ldns_rr2buffer_str_fmt(ldns_buffer *output,
fmt_st = (ldns_output_format_storage*)
ldns_output_format_default;
}
- if (!rr) {
- if (LDNS_COMMENT_NULLS & fmt_st->flags) {
- ldns_buffer_printf(output, "; (null)\n");
+ if (!(fmt_st->flags & LDNS_FMT_SHORT)) {
+ if (!rr) {
+ if (LDNS_COMMENT_NULLS & fmt_st->flags) {
+ ldns_buffer_printf(output, "; (null)\n");
+ }
+ return ldns_buffer_status(output);
+ }
+ if (ldns_rr_owner(rr)) {
+ status = ldns_rdf2buffer_str_dname(output, ldns_rr_owner(rr));
+ }
+ if (status != LDNS_STATUS_OK) {
+ return status;
}
- return ldns_buffer_status(output);
- }
- if (ldns_rr_owner(rr)) {
- status = ldns_rdf2buffer_str_dname(output, ldns_rr_owner(rr));
- }
- if (status != LDNS_STATUS_OK) {
- return status;
- }
- /* TTL should NOT be printed if it is a question */
- if (!ldns_rr_is_question(rr)) {
- ldns_buffer_printf(output, "\t%d", ldns_rr_ttl(rr));
- }
+ /* TTL should NOT be printed if it is a question */
+ if (!ldns_rr_is_question(rr)) {
+ ldns_buffer_printf(output, "\t%u", (unsigned)ldns_rr_ttl(rr));
+ }
- ldns_buffer_printf(output, "\t");
- status = ldns_rr_class2buffer_str(output, ldns_rr_get_class(rr));
- if (status != LDNS_STATUS_OK) {
- return status;
- }
- ldns_buffer_printf(output, "\t");
+ ldns_buffer_printf(output, "\t");
+ status = ldns_rr_class2buffer_str(output, ldns_rr_get_class(rr));
+ if (status != LDNS_STATUS_OK) {
+ return status;
+ }
+ ldns_buffer_printf(output, "\t");
- if (ldns_output_format_covers_type(fmt, ldns_rr_get_type(rr))) {
- return ldns_rr2buffer_str_rfc3597(output, rr);
- }
- status = ldns_rr_type2buffer_str(output, ldns_rr_get_type(rr));
- if (status != LDNS_STATUS_OK) {
- return status;
- }
+ if (ldns_output_format_covers_type(fmt, ldns_rr_get_type(rr))) {
+ return ldns_rr2buffer_str_rfc3597(output, rr);
+ }
+ status = ldns_rr_type2buffer_str(output, ldns_rr_get_type(rr));
+ if (status != LDNS_STATUS_OK) {
+ return status;
+ }
- if (ldns_rr_rd_count(rr) > 0) {
- ldns_buffer_printf(output, "\t");
- } else if (!ldns_rr_is_question(rr)) {
- ldns_buffer_printf(output, "\t\\# 0");
- }
+ if (ldns_rr_rd_count(rr) > 0) {
+ ldns_buffer_printf(output, "\t");
+ } else if (!ldns_rr_is_question(rr)) {
+ ldns_buffer_printf(output, "\t\\# 0");
+ }
+ } else if (ldns_rr_rd_count(rr) == 0) {
+ /* assert(fmt_st->flags & LDNS_FMT_SHORT); */
+ ldns_buffer_printf(output, "# 0");
+ }
for (i = 0; i < ldns_rr_rd_count(rr); i++) {
/* ldns_rdf2buffer_str handles NULL input fine! */
if ((fmt_st->flags & LDNS_FMT_ZEROIZE_RRSIGS) &&
@@ -1649,7 +1995,7 @@ ldns_rr2buffer_str_fmt(ldns_buffer *output,
node->data
));
}
- ldns_rdf_free(key);
+ ldns_rdf_deep_free(key);
}
key = ldns_b32_ext2dname(
ldns_nsec3_next_owner(rr));
@@ -1667,7 +2013,7 @@ ldns_rr2buffer_str_fmt(ldns_buffer *output,
node->data
));
}
- ldns_rdf_free(key);
+ ldns_rdf_deep_free(key);
}
}
ldns_buffer_printf(output, "}");
@@ -1760,6 +2106,579 @@ ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt)
return ldns_buffer_status(output);
}
+
+/* print EDNS option data in the Dig format: 76 61 6c 69 ... */
+static void
+ldns_edns_hex_data2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t j;
+ for (j = 0; j < len; j++) {
+ ldns_buffer_printf(output, " %02x", data[j]);
+ }
+}
+
+static ldns_status
+ldns_edns_llq2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ /* LLQ constants */
+ const char* llq_errors[] = {"NO-ERROR", "SERV-FULL", "STATIC",
+ "FORMAT-ERR", "NO-SUCH-LLQ", "BAD-VERS", "UNKNOWN_ERR"};
+ const unsigned int llq_errors_num = 7;
+ const char* llq_opcodes[] = {"LLQ-SETUP", "LLQ-REFRESH", "LLQ-EVENT"};
+ const unsigned int llq_opcodes_num = 3;
+
+ uint16_t version, llq_opcode, error_code;
+ uint64_t llq_id;
+ uint32_t lease_life; /* Requested or granted life of LLQ, in seconds */
+
+ ldns_buffer_printf(output, "; Long-Lived Query:");
+
+ /* read the record */
+ if(len != 18) {
+ ldns_buffer_printf(output, " malformed LLQ ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+ version = ldns_read_uint16(data);
+ llq_opcode = ldns_read_uint16(data+2);
+ error_code = ldns_read_uint16(data+4);
+ memmove(&llq_id, data+6, sizeof(uint64_t));
+ lease_life = ldns_read_uint32(data+14);
+
+ /* print option field entires */
+ ldns_buffer_printf(output, "v%d ", (int)version);
+
+ if(llq_opcode < llq_opcodes_num) {
+ ldns_buffer_printf(output, "%s", llq_opcodes[llq_opcode]);
+ } else {
+ ldns_buffer_printf(output, "opcode %d", (int)llq_opcode);
+ }
+
+ if(error_code < llq_errors_num)
+ ldns_buffer_printf(output, " %s", llq_errors[error_code]);
+ else {
+ ldns_buffer_printf(output, " error %d", (int)error_code);
+ }
+
+#ifndef USE_WINSOCK
+ ldns_buffer_printf(output, " id %llx lease-life %lu",
+ (unsigned long long)llq_id, (unsigned long)lease_life);
+#else
+ ldns_buffer_printf(output, " id %I64x lease-life %lu",
+ (unsigned long long)llq_id, (unsigned long)lease_life);
+#endif
+ return ldns_buffer_status(output);
+}
+
+
+static ldns_status
+ldns_edns_ul2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ uint32_t lease;
+
+ ldns_buffer_printf(output, "; Update Lease:");
+
+ if(len != 4) {
+ ldns_buffer_printf(output, " malformed UL ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+ return ldns_buffer_status(output);
+ }
+ lease = ldns_read_uint32(data);
+ ldns_buffer_printf(output, "lease %lu", (unsigned long)lease);
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_nsid2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t i, printed=0;
+
+ ldns_buffer_printf(output, "; NSID:");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ /* print the human-readable text string */
+ for(i = 0; i < len; i++) {
+ if(isprint((unsigned char)data[i]) || data[i] == '\t') {
+ if(!printed) {
+ ldns_buffer_printf(output, " (");
+ printed = 1;
+ }
+ ldns_buffer_printf(output, "%c", (char)data[i]);
+ }
+ }
+ if(printed)
+ ldns_buffer_printf(output, ")");
+ return ldns_buffer_status(output);
+}
+
+
+static ldns_status
+ldns_edns_dau2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t i;
+ ldns_lookup_table *lt;
+
+ ldns_buffer_printf(output, "; DNSSEC Algorithm Understood (DAU):");
+
+ for(i = 0; i <len; i++) {
+ lt = ldns_lookup_by_id(ldns_algorithms, data[i]);
+ if (lt && lt->name) {
+ ldns_buffer_printf(output, " %s", lt->name);
+ } else {
+ ldns_buffer_printf(output, " ALG%u", data[i]);
+ }
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_dhu2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t i;
+ ldns_lookup_table *lt;
+
+ ldns_buffer_printf(output, "; DS Hash Understood (DHU):");
+
+ for(i = 0; i < len; i++) {
+ lt = ldns_lookup_by_id(ldns_hashes, data[i]);
+ if (lt && lt->name) {
+ ldns_buffer_printf(output, " %s", lt->name);
+ } else {
+ ldns_buffer_printf(output, " ALG%u", data[i]);
+ }
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_d3u2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t i;
+
+ ldns_buffer_printf(output, "; NSEC3 Hash Understood (N3U):");
+
+ for(i=0; i<len; i++) {
+ if(data[i] == 1) {
+ ldns_buffer_printf(output, " SHA1");
+ } else {
+ ldns_buffer_printf(output, " %d", (int)data[i]);
+ }
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_subnet2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ uint16_t family;
+ uint8_t source, scope;
+ if(len < 4) {
+ ldns_buffer_printf(output, "malformed subnet ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+ return ldns_buffer_status(output);
+ }
+ family = ldns_read_uint16(data);
+ source = data[2];
+ scope = data[3];
+ if(family == 1) {
+ /* IPv4 */
+ char buf[64];
+ uint8_t ip4[4];
+ memset(ip4, 0, sizeof(ip4));
+ if(len-4 > 4) {
+ ldns_buffer_printf(output, "trailingdata:");
+ ldns_edns_hex_data2buffer_str(output, data+4+4, len-4-4);
+ ldns_buffer_printf(output, " ");
+ len = 4+4;
+ }
+ memmove(ip4, data+4, len-4);
+ if(!inet_ntop(AF_INET, ip4, buf, (socklen_t) sizeof(buf))) {
+ ldns_buffer_printf(output, "ip4ntoperror ");
+ ldns_edns_hex_data2buffer_str(output, data+4+4, len-4-4);
+ } else {
+ ldns_buffer_printf(output, "%s", buf);
+ }
+ } else if(family == 2) {
+ /* IPv6 */
+ char buf[64];
+ uint8_t ip6[16];
+ memset(ip6, 0, sizeof(ip6));
+ if(len-4 > 16) {
+ ldns_buffer_printf(output, "trailingdata:");
+ ldns_edns_hex_data2buffer_str(output, data+4+16, len-4-16);
+ ldns_buffer_printf(output, " ");
+ len = 4+16;
+ }
+ memmove(ip6, data+4, len-4);
+#ifdef AF_INET6
+ if(!inet_ntop(AF_INET6, ip6, buf, (socklen_t) sizeof(buf))) {
+ ldns_buffer_printf(output, "ip6ntoperror ");
+ ldns_edns_hex_data2buffer_str(output, data+4+4, len-4-4);
+ } else {
+ ldns_buffer_printf(output, "%s", buf);
+ }
+#else
+ ldns_edns_hex_data2buffer_str(output, data+4+4, len-4-4);
+#endif
+ } else {
+ /* unknown */
+ ldns_buffer_printf(output, "family %d ", (int)family);
+ ldns_edns_hex_data2buffer_str(output, data, len);
+ }
+ ldns_buffer_printf(output, "/%d scope /%d", (int)source, (int)scope);
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_expire2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+
+ ldns_buffer_printf(output, "; EXPIRE:");
+
+ if (!(len == 0) || len == 4) {
+ ldns_buffer_printf(output, "malformed expire ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ // TODO can this output be more accurate?
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+}
+
+
+static ldns_status
+ldns_edns_cookie2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ ldns_buffer_printf(output, "; COOKIE:");
+
+ /* the size of an EDNS cookie is restricted by RFC 7873 */
+ if (!(len == 8 || (len >= 16 && len < 40))) {
+ ldns_buffer_printf(output, "malformed cookie ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+ }
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_keepalive2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ uint16_t timeout;
+
+ ldns_buffer_printf(output, "; KEEPALIVE:");
+
+ if(!(len == 0 || len == 2)) {
+ ldns_buffer_printf(output, "malformed keepalive ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ if(len == 0) {
+ ldns_buffer_printf(output, "no timeout value (only valid for client option)");
+ } else {
+ timeout = ldns_read_uint16(data);
+ ldns_buffer_printf(output, "timeout value in units of 100ms %u", (int)timeout);
+ }
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_padding2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ ldns_buffer_printf(output, "; PADDING: ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_chain2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ ldns_rdf** temp = NULL;
+
+ ldns_buffer_printf(output, "; CHAIN: ");
+
+ if (ldns_str2rdf_dname(temp, (char*) data) != LDNS_STATUS_OK) {
+ ldns_buffer_printf(output, "malformed chain ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ ldns_characters2buffer_str(output, len, data);
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_key_tag2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t i;
+
+ ldns_buffer_printf(output, "; KEY TAG: ");
+
+ if(len < 2 || len % 2 != 0) {
+ ldns_buffer_printf(output, "malformed key tag ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ for (i = 0; i < len; i += 2) {
+ uint16_t tag = ldns_read_uint16(data);
+
+ ldns_buffer_printf(output, " %hu", tag);
+ }
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_ede2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ size_t i;
+ uint16_t ede;
+ ldns_buffer_printf(output, "; EDE:");
+
+ if(len < 2) {
+ ldns_buffer_printf(output, "malformed ede ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ ede = ldns_read_uint16(data);
+
+ switch (ede) {
+ case LDNS_EDE_OTHER:
+ ldns_buffer_printf(output, " 0 (Other): ");
+ break;
+ case LDNS_EDE_UNSUPPORTED_DNSKEY_ALG:
+ ldns_buffer_printf(output, " 1 (Unsupported DNSKEY Algorithm)");
+ break;
+ case LDNS_EDE_UNSUPPORTED_DS_DIGEST:
+ ldns_buffer_printf(output, " 2 (Unsupported DS Digest type)");
+ break;
+ case LDNS_EDE_STALE_ANSWER:
+ ldns_buffer_printf(output, " 3 (Stale Answer)");
+ break;
+ case LDNS_EDE_FORGED_ANSWER:
+ ldns_buffer_printf(output, " 4 (Forged Answer)");
+ break;
+ case LDNS_EDE_DNSSEC_INDETERMINATE:
+ ldns_buffer_printf(output, " 5 (DNSSEC Indeterminate)");
+ break;
+ case LDNS_EDE_DNSSEC_BOGUS:
+ ldns_buffer_printf(output, " 6 (DNSSEC Bogus)");
+ break;
+ case LDNS_EDE_SIGNATURE_EXPIRED:
+ ldns_buffer_printf(output, " 7 (Signature Expired)");
+ break;
+ case LDNS_EDE_SIGNATURE_NOT_YET_VALID:
+ ldns_buffer_printf(output, " 8 (Signature Not Yet Valid)");
+ break;
+ case LDNS_EDE_DNSKEY_MISSING:
+ ldns_buffer_printf(output, " 9 (DNSKEY Missing)");
+ break;
+ case LDNS_EDE_RRSIGS_MISSING:
+ ldns_buffer_printf(output, " 10 (RRSIGs Missing)");
+ break;
+ case LDNS_EDE_NO_ZONE_KEY_BIT_SET:
+ ldns_buffer_printf(output, " 11 (No Zone Key Bit Set)");
+ break;
+ case LDNS_EDE_NSEC_MISSING:
+ ldns_buffer_printf(output, " 12 (NSEC Missing)");
+ break;
+ case LDNS_EDE_CACHED_ERROR:
+ ldns_buffer_printf(output, " 13 (Cached Error)");
+ break;
+ case LDNS_EDE_NOT_READY:
+ ldns_buffer_printf(output, " 14 (Not Ready)");
+ break;
+ case LDNS_EDE_BLOCKED:
+ ldns_buffer_printf(output, " 15 (Blocked)");
+ break;
+ case LDNS_EDE_CENSORED:
+ ldns_buffer_printf(output, " 16 (Censored)");
+ break;
+ case LDNS_EDE_FILTERED:
+ ldns_buffer_printf(output, " 17 (Filtered)");
+ break;
+ case LDNS_EDE_PROHIBITED:
+ ldns_buffer_printf(output, " 18 (Prohibited)");
+ break;
+ case LDNS_EDE_STALE_NXDOMAIN_ANSWER:
+ ldns_buffer_printf(output, " 19 (NXDOMAIN Answer)");
+ break;
+ case LDNS_EDE_NOT_AUTHORITATIVE:
+ ldns_buffer_printf(output, " 20 (Not Authoritative)");
+ break;
+ case LDNS_EDE_NOT_SUPPORTED:
+ ldns_buffer_printf(output, " 21 (Not Supported)");
+ break;
+ case LDNS_EDE_NO_REACHABLE_AUTHORITY:
+ ldns_buffer_printf(output, " 22 (No Reachable Authority)");
+ break;
+ case LDNS_EDE_NETWORK_ERROR:
+ ldns_buffer_printf(output, " 23 (Network Error)");
+ break;
+ case LDNS_EDE_INVALID_DATA:
+ ldns_buffer_printf(output, " 24 (Invalid Data)");
+ break;
+ case LDNS_EDE_SIGNATURE_EXPIRED_BEFORE_VALID:
+ ldns_buffer_printf(output, " 25 (Signature Expired Before Valid)");
+ break;
+ case LDNS_EDE_TOO_EARLY:
+ ldns_buffer_printf(output, " 26 (Too Early)");
+ break;
+ default:
+ ldns_buffer_printf(output, " %02x", data[0]);
+ ldns_buffer_printf(output, " %02x", data[1]);
+ break;
+ }
+
+ /* skip the EDE code in the output */
+ data += 2;
+ len -= 2;
+
+ if (len > 2) {
+ /* format the hex bytes */
+ ldns_buffer_printf(output, ":");
+ for (i = 0; i < len; i++) {
+ ldns_buffer_printf(output, " %02x", data[i]);
+ }
+
+ /* format the human-readable string */
+ ldns_buffer_printf(output, " (");
+ ldns_characters2buffer_str(output, len, data);
+ ldns_buffer_printf(output, ")");
+ }
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_client_tag2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ ldns_buffer_printf(output, "; CLIENT-TAG:");
+
+ if (len > 2) {
+ ldns_buffer_printf(output, "malformed client-tag ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+ldns_edns_server_tag2buffer_str(ldns_buffer* output, uint8_t* data, size_t len)
+{
+ ldns_buffer_printf(output, "; SERVER-TAG:");
+
+ if (len > 2) {
+ ldns_buffer_printf(output, "malformed server-tag ");
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+ }
+
+ ldns_edns_hex_data2buffer_str(output, data, len);
+
+ return ldns_buffer_status(output);
+}
+
+ldns_status
+ldns_edns_option_list2buffer_str(ldns_buffer *output, ldns_edns_option_list* edns_list)
+{
+ size_t count = ldns_edns_option_list_get_count(edns_list);
+ size_t i, size;
+ uint8_t* data;
+
+ for (i = 0; i < count; i++) {
+ ldns_edns_option_code code;
+ ldns_edns_option* edns = ldns_edns_option_list_get_option(edns_list, i);
+
+ if (!edns) {
+ break;
+ }
+
+ code = ldns_edns_get_code(edns);
+ size = ldns_edns_get_size(edns);
+ data = ldns_edns_get_data(edns);
+
+ switch(code) {
+ case LDNS_EDNS_LLQ:
+ ldns_edns_llq2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_UL:
+ ldns_edns_ul2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_NSID:
+ ldns_edns_nsid2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_DAU:
+ ldns_edns_dau2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_DHU:
+ ldns_edns_dhu2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_N3U:
+ ldns_edns_d3u2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_CLIENT_SUBNET:
+ ldns_edns_subnet2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_EXPIRE:
+ ldns_edns_expire2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_COOKIE:
+ ldns_edns_cookie2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_KEEPALIVE:
+ ldns_edns_keepalive2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_PADDING:
+ ldns_edns_padding2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_CHAIN:
+ ldns_edns_chain2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_KEY_TAG:
+ ldns_edns_key_tag2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_EDE:
+ ldns_edns_ede2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_CLIENT_TAG:
+ ldns_edns_client_tag2buffer_str(output, data, size);
+ break;
+ case LDNS_EDNS_SERVER_TAG:
+ ldns_edns_server_tag2buffer_str(output, data, size);
+ break;
+ default:
+ ldns_buffer_printf(output, "; OPT=%d:", code);
+ ldns_edns_hex_data2buffer_str(output, data, size);
+ break;
+ }
+ ldns_buffer_printf(output, "\n");
+ }
+
+ return ldns_buffer_status(output);
+}
+
+
ldns_status
ldns_pkt2buffer_str_fmt(ldns_buffer *output,
const ldns_output_format *fmt, const ldns_pkt *pkt)
@@ -1769,13 +2688,18 @@ ldns_pkt2buffer_str_fmt(ldns_buffer *output,
char *tmp;
struct timeval time;
time_t time_tt;
+ int short_fmt = fmt && (fmt->flags & LDNS_FMT_SHORT);
if (!pkt) {
ldns_buffer_printf(output, "null");
return LDNS_STATUS_OK;
}
- if (ldns_buffer_status_ok(output)) {
+ if (!ldns_buffer_status_ok(output)) {
+ return ldns_buffer_status(output);
+ }
+
+ if (!short_fmt) {
status = ldns_pktheader2buffer_str(output, pkt);
if (status != LDNS_STATUS_OK) {
return status;
@@ -1797,15 +2721,16 @@ ldns_pkt2buffer_str_fmt(ldns_buffer *output,
ldns_buffer_printf(output, "\n");
ldns_buffer_printf(output, ";; ANSWER SECTION:\n");
- for (i = 0; i < ldns_pkt_ancount(pkt); i++) {
- status = ldns_rr2buffer_str_fmt(output, fmt,
- ldns_rr_list_rr(
- ldns_pkt_answer(pkt), i));
- if (status != LDNS_STATUS_OK) {
- return status;
- }
-
+ }
+ for (i = 0; i < ldns_pkt_ancount(pkt); i++) {
+ status = ldns_rr2buffer_str_fmt(output, fmt,
+ ldns_rr_list_rr(
+ ldns_pkt_answer(pkt), i));
+ if (status != LDNS_STATUS_OK) {
+ return status;
}
+ }
+ if (!short_fmt) {
ldns_buffer_printf(output, "\n");
ldns_buffer_printf(output, ";; AUTHORITY SECTION:\n");
@@ -1831,7 +2756,7 @@ ldns_pkt2buffer_str_fmt(ldns_buffer *output,
}
ldns_buffer_printf(output, "\n");
- /* add some futher fields */
+ /* add some further fields */
ldns_buffer_printf(output, ";; Query time: %d msec\n",
ldns_pkt_querytime(pkt));
if (ldns_pkt_edns(pkt)) {
@@ -1850,11 +2775,20 @@ ldns_pkt2buffer_str_fmt(ldns_buffer *output,
ldns_buffer_printf(output, " ; udp: %u\n",
ldns_pkt_edns_udp_size(pkt));
- if (ldns_pkt_edns_data(pkt)) {
- ldns_buffer_printf(output, ";; Data: ");
- (void)ldns_rdf2buffer_str(output,
- ldns_pkt_edns_data(pkt));
- ldns_buffer_printf(output, "\n");
+ if (pkt->_edns_list)
+ ldns_edns_option_list2buffer_str(output, pkt->_edns_list);
+
+ else if (ldns_pkt_edns_data(pkt)) {
+ ldns_edns_option_list* edns_list;
+ /* parse the EDNS data into separate EDNS options
+ * and add them to the list */
+ if ((edns_list = pkt_edns_data2edns_option_list(ldns_pkt_edns_data(pkt)))) {
+ ldns_edns_option_list2buffer_str(output, edns_list);
+ ldns_edns_option_list_deep_free(edns_list);
+ } else {
+ ldns_buffer_printf(output, ";; Data: ");
+ (void)ldns_rdf2buffer_str(output, ldns_pkt_edns_data(pkt));
+ }
}
}
if (ldns_pkt_tsig(pkt)) {
@@ -1875,8 +2809,6 @@ ldns_pkt2buffer_str_fmt(ldns_buffer *output,
ldns_buffer_printf(output, ";; MSG SIZE rcvd: %d\n",
(int)ldns_pkt_size(pkt));
- } else {
- return ldns_buffer_status(output);
}
return status;
}
@@ -1929,6 +2861,63 @@ ldns_gost_key2buffer_str(ldns_buffer *output, EVP_PKEY *p)
}
#endif
+#if defined(HAVE_SSL) && defined(USE_ED25519)
+static ldns_status
+ldns_ed25519_key2buffer_str(ldns_buffer *output, EVP_PKEY *p)
+{
+ unsigned char* pp = NULL;
+ int ret;
+ ldns_rdf *b64_bignum;
+ ldns_status status;
+
+ ldns_buffer_printf(output, "PrivateKey: ");
+
+ ret = i2d_PrivateKey(p, &pp);
+ /* 16 byte asn (302e020100300506032b657004220420) + 32byte key */
+ if(ret != 16 + 32) {
+ OPENSSL_free(pp);
+ return LDNS_STATUS_ERR;
+ }
+ b64_bignum = ldns_rdf_new_frm_data(LDNS_RDF_TYPE_B64,
+ (size_t)ret-16, pp+16);
+ status = ldns_rdf2buffer_str(output, b64_bignum);
+
+ ldns_rdf_deep_free(b64_bignum);
+ OPENSSL_free(pp);
+ ldns_buffer_printf(output, "\n");
+ return status;
+}
+#endif
+
+#if defined(HAVE_SSL) && defined(USE_ED448)
+static ldns_status
+ldns_ed448_key2buffer_str(ldns_buffer *output, EVP_PKEY *p)
+{
+ unsigned char* pp = NULL;
+ int ret;
+ ldns_rdf *b64_bignum;
+ ldns_status status;
+
+ ldns_buffer_printf(output, "PrivateKey: ");
+
+ ret = i2d_PrivateKey(p, &pp);
+ /* some-ASN + 57byte key */
+ if(ret != 16 + 57) {
+ OPENSSL_free(pp);
+ return LDNS_STATUS_ERR;
+ }
+ b64_bignum = ldns_rdf_new_frm_data(LDNS_RDF_TYPE_B64,
+ (size_t)ret-16, pp+16);
+ status = ldns_rdf2buffer_str(output, b64_bignum);
+
+ ldns_rdf_deep_free(b64_bignum);
+ OPENSSL_free(pp);
+ ldns_buffer_printf(output, "\n");
+ return status;
+}
+#endif
+
+#if defined(HAVE_SSL)
/** print one b64 encoded bignum to a line in the keybuffer */
static int
ldns_print_bignum_b64_line(ldns_buffer* output, const char* label, const BIGNUM* num)
@@ -1958,6 +2947,7 @@ ldns_print_bignum_b64_line(ldns_buffer* output, const char* label, const BIGNUM*
LDNS_FREE(bignumbuf);
return 1;
}
+#endif
ldns_status
ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
@@ -1966,7 +2956,9 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
unsigned char *bignum;
#ifdef HAVE_SSL
RSA *rsa;
+#ifdef USE_DSA
DSA *dsa;
+#endif /* USE_DSA */
#endif /* HAVE_SSL */
if (!k) {
@@ -2040,7 +3032,7 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
const BIGNUM *n=NULL, *e=NULL, *d=NULL,
*p=NULL, *q=NULL, *dmp1=NULL,
*dmq1=NULL, *iqmp=NULL;
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
n = rsa->n;
e = rsa->e;
d = rsa->d;
@@ -2076,6 +3068,7 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
RSA_free(rsa);
break;
+#ifdef USE_DSA
case LDNS_SIGN_DSA:
case LDNS_SIGN_DSA_NSEC3:
dsa = ldns_key_dsa_key(k);
@@ -2092,7 +3085,7 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
if(1) {
const BIGNUM *p=NULL, *q=NULL, *g=NULL,
*priv_key=NULL, *pub_key=NULL;
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
#ifndef S_SPLINT_S
p = dsa->p;
q = dsa->q;
@@ -2116,6 +3109,7 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
goto error;
}
break;
+#endif /* USE_DSA */
case LDNS_SIGN_ECC_GOST:
/* no format defined, use blob */
#if defined(HAVE_SSL) && defined(USE_GOST)
@@ -2160,16 +3154,9 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
ldns_buffer_printf(output, "Algorithm: %d (", ldns_key_algorithm(k));
status=ldns_algorithm2buffer_str(output, (ldns_algorithm)ldns_key_algorithm(k));
ldns_buffer_printf(output, ")\n");
- if(k->_key.key) {
- EC_KEY* ec = EVP_PKEY_get1_EC_KEY(k->_key.key);
- const BIGNUM* b = EC_KEY_get0_private_key(ec);
- if(!ldns_print_bignum_b64_line(output, "PrivateKey", b))
- goto error;
- /* down reference count in EC_KEY
- * its still assigned to the PKEY */
- EC_KEY_free(ec);
- }
- ldns_buffer_printf(output, "\n");
+ if (status) break;
+ status = ldns_ed25519_key2buffer_str(output,
+ k->_key.key);
break;
#endif /* USE_ED25519 */
#ifdef USE_ED448
@@ -2178,16 +3165,9 @@ ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k)
ldns_buffer_printf(output, "Algorithm: %d (", ldns_key_algorithm(k));
status=ldns_algorithm2buffer_str(output, (ldns_algorithm)ldns_key_algorithm(k));
ldns_buffer_printf(output, ")\n");
- if(k->_key.key) {
- EC_KEY* ec = EVP_PKEY_get1_EC_KEY(k->_key.key);
- const BIGNUM* b = EC_KEY_get0_private_key(ec);
- if(!ldns_print_bignum_b64_line(output, "PrivateKey", b))
- goto error;
- /* down reference count in EC_KEY
- * its still assigned to the PKEY */
- EC_KEY_free(ec);
- }
- ldns_buffer_printf(output, "\n");
+ if (status) break;
+ status = ldns_ed448_key2buffer_str(output,
+ k->_key.key);
break;
#endif /* USE_ED448 */
case LDNS_SIGN_HMACMD5:
@@ -2254,7 +3234,7 @@ ldns_buffer2str(ldns_buffer *buffer)
if (!ldns_buffer_reserve(buffer, 1)) {
return NULL;
}
- ldns_buffer_write_u8(buffer, (uint8_t) '\0');
+ ldns_buffer_write_char(buffer, (uint8_t) '\0');
if (!ldns_buffer_set_capacity(buffer, ldns_buffer_position(buffer))) {
return NULL;
}
@@ -2277,7 +3257,7 @@ ldns_buffer_export2str(ldns_buffer *buffer)
if (! ldns_buffer_reserve(buffer, 1)) {
return NULL;
}
- ldns_buffer_write_u8(buffer, 0);
+ ldns_buffer_write_char(buffer, 0);
/* reallocate memory to the size of the string and export */
ldns_buffer_set_capacity(buffer, ldns_buffer_position(buffer));
diff --git a/host2wire.c b/host2wire.c
index 4d8aa30f2d85..d1539214796d 100644
--- a/host2wire.c
+++ b/host2wire.c
@@ -67,17 +67,27 @@ ldns_dname2buffer_wire_compress(ldns_buffer *buffer, const ldns_rdf *name, ldns_
{
/* Not found. Write cache entry, take off first label, write it, */
/* try again with the rest of the name. */
- node = LDNS_MALLOC(ldns_rbnode_t);
- if(!node)
- {
- return LDNS_STATUS_MEM_ERR;
- }
if (ldns_buffer_position(buffer) < 16384) {
- node->key = ldns_rdf_clone(name);
+ ldns_rdf *key;
+
+ node = LDNS_MALLOC(ldns_rbnode_t);
+ if(!node)
+ {
+ return LDNS_STATUS_MEM_ERR;
+ }
+
+ key = ldns_rdf_clone(name);
+ if (!key) {
+ LDNS_FREE(node);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ node->key = key;
node->data = (void *) (intptr_t) ldns_buffer_position(buffer);
if(!ldns_rbtree_insert(compression_data,node))
{
/* fprintf(stderr,"Name not found but now it's there?\n"); */
+ ldns_rdf_deep_free(key);
+ LDNS_FREE(node);
}
}
label = ldns_dname_label(name, 0);
@@ -365,6 +375,20 @@ compression_node_free(ldns_rbnode_t *node, void *arg)
ldns_status
ldns_pkt2buffer_wire(ldns_buffer *buffer, const ldns_pkt *packet)
{
+ ldns_status status;
+ ldns_rbtree_t *compression_data = ldns_rbtree_create((int (*)(const void *, const void *))ldns_dname_compare);
+
+ status = ldns_pkt2buffer_wire_compress(buffer, packet, compression_data);
+
+ ldns_traverse_postorder(compression_data,compression_node_free,NULL);
+ ldns_rbtree_free(compression_data);
+
+ return status;
+}
+
+ldns_status
+ldns_pkt2buffer_wire_compress(ldns_buffer *buffer, const ldns_pkt *packet, ldns_rbtree_t *compression_data)
+{
ldns_rr_list *rr_list;
uint16_t i;
@@ -372,8 +396,9 @@ ldns_pkt2buffer_wire(ldns_buffer *buffer, const ldns_pkt *packet)
ldns_rr *edns_rr;
uint8_t edata[4];
- ldns_rbtree_t *compression_data = ldns_rbtree_create((int (*)(const void *, const void *))ldns_dname_compare);
-
+ ldns_buffer *edns_buf = NULL;
+ ldns_rdf *edns_rdf = NULL;
+
(void) ldns_hdr2buffer_wire(buffer, packet);
rr_list = ldns_pkt_question(packet);
@@ -418,11 +443,22 @@ ldns_pkt2buffer_wire(ldns_buffer *buffer, const ldns_pkt *packet)
ldns_write_uint16(&edata[2], ldns_pkt_edns_z(packet));
ldns_rr_set_ttl(edns_rr, ldns_read_uint32(edata));
/* don't forget to add the edns rdata (if any) */
- if (packet->_edns_data)
- ldns_rr_push_rdf (edns_rr, packet->_edns_data);
+ if ((edns_buf = ldns_edns_option_list2wireformat_buffer(packet->_edns_list))) {
+ edns_rdf = ldns_rdf_new( LDNS_RDF_TYPE_UNKNOWN
+ , ldns_buffer_limit(edns_buf)
+ , ldns_buffer_export(edns_buf));
+ ldns_buffer_free(edns_buf);
+ }
+ if (edns_rdf)
+ ldns_rr_push_rdf(edns_rr, edns_rdf);
+ else if (packet->_edns_data)
+ ldns_rr_push_rdf(edns_rr, packet->_edns_data);
(void)ldns_rr2buffer_wire_compress(buffer, edns_rr, LDNS_SECTION_ADDITIONAL, compression_data);
- /* take the edns rdata back out of the rr before we free rr */
- if (packet->_edns_data)
+ /* if the rdata of the OPT came from packet->_edns_data
+ * we need to take it back out of the edns_rr before we free it
+ * so packet->_edns_data doesn't get freed
+ */
+ if (!edns_rdf && packet->_edns_data)
(void)ldns_rr_pop_rdf (edns_rr);
ldns_rr_free(edns_rr);
}
@@ -433,9 +469,6 @@ ldns_pkt2buffer_wire(ldns_buffer *buffer, const ldns_pkt *packet)
ldns_pkt_tsig(packet), LDNS_SECTION_ADDITIONAL, compression_data);
}
- ldns_traverse_postorder(compression_data,compression_node_free,NULL);
- ldns_rbtree_free(compression_data);
-
return LDNS_STATUS_OK;
}
diff --git a/install-sh b/install-sh
index 59990a104926..ec298b537402 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2014-09-12.12; # UTC
+scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@ posix_mkdir=
# Desired mode of installed file.
mode=0755
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -99,18 +104,28 @@ Options:
--version display version info and exit.
-c (ignored)
- -C install only if different (preserve the last data modification time)
+ -C install only if different (preserve data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
+ -p pass -p to $cpprog.
-s $stripprog installed files.
+ -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
"
while test $# -ne 0; do
@@ -137,8 +152,13 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2"
shift;;
+ -p) cpprog="$cpprog -p";;
+
-s) stripcmd=$stripprog;;
+ -S) backupsuffix="$2"
+ shift;;
+
-t)
is_target_a_directory=always
dst_arg=$2
@@ -255,6 +275,10 @@ do
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
+ # Don't chown directories that already exist.
+ if test $dstdir_status = 0; then
+ chowncmd=""
+ fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -271,15 +295,18 @@ do
fi
dst=$dst_arg
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
+ # If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
- dst=$dstdir/`basename "$src"`
+ dstbase=`basename "$src"`
+ case $dst in
+ */) dst=$dst$dstbase;;
+ *) dst=$dst/$dstbase;;
+ esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
@@ -288,27 +315,16 @@ do
fi
fi
+ case $dstdir in
+ */) dstdirslash=$dstdir;;
+ *) dstdirslash=$dstdir/;;
+ esac
+
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
@@ -318,50 +334,49 @@ do
fi
posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # $RANDOM is not portable (e.g. dash); use it when possible to
- # lower collision chance
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
- # create the $tmpdir first (and fail if unsuccessful) to make sure
- # that nobody tries to guess the $tmpdir name.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # The $RANDOM variable is not portable (e.g., dash). Use it
+ # here however when possible just to lower collision chance.
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+ trap '
+ ret=$?
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+ exit $ret
+ ' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p'.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
esac
if
@@ -372,7 +387,7 @@ do
then :
else
- # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
@@ -401,7 +416,7 @@ do
prefixes=
else
if $posix_mkdir; then
- (umask=$mkdir_umask &&
+ (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
@@ -434,14 +449,25 @@ do
else
# Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
+ dsttmp=${dstdirslash}_inst.$$_
+ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -467,6 +493,13 @@ do
then
rm -f "$dsttmp"
else
+ # If $backupsuffix is set, and the file being installed
+ # already exists, attempt a backup. Don't worry if it fails,
+ # e.g., if mv doesn't support -f.
+ if test -n "$backupsuffix" && test -f "$dst"; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
+
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@@ -481,9 +514,9 @@ do
# file should still install successfully.
{
test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
+ $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
@@ -500,9 +533,9 @@ do
done
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff --git a/keys.c b/keys.c
index 31208cb3a43f..78bea9721c4c 100644
--- a/keys.c
+++ b/keys.c
@@ -15,9 +15,17 @@
#include <ldns/ldns.h>
#ifdef HAVE_SSL
+#include <openssl/ui.h>
#include <openssl/ssl.h>
-#include <openssl/engine.h>
#include <openssl/rand.h>
+#include <openssl/bn.h>
+#include <openssl/rsa.h>
+#ifdef USE_DSA
+#include <openssl/dsa.h>
+#endif
+#ifndef OPENSSL_NO_ENGINE
+#include <openssl/engine.h>
+#endif
#endif /* HAVE_SSL */
ldns_lookup_table ldns_signing_algorithms[] = {
@@ -76,7 +84,7 @@ ldns_key_new(void)
if (!newkey) {
return NULL;
} else {
- /* some defaults - not sure wether to do this */
+ /* some defaults - not sure whether to do this */
ldns_key_set_use(newkey, true);
ldns_key_set_flags(newkey, LDNS_KEY_ZONE_KEY);
ldns_key_set_origttl(newkey, 0);
@@ -99,7 +107,7 @@ ldns_key_new_frm_fp(ldns_key **k, FILE *fp)
return ldns_key_new_frm_fp_l(k, fp, NULL);
}
-#ifdef HAVE_SSL
+#if defined(HAVE_SSL) && !defined(OPENSSL_NO_ENGINE)
ldns_status
ldns_key_new_frm_engine(ldns_key **key, ENGINE *e, char *key_id, ldns_algorithm alg)
{
@@ -300,34 +308,36 @@ ldns_key_new_frm_fp_ecdsa_l(FILE* fp, ldns_algorithm alg, int* line_nr)
#ifdef USE_ED25519
/** turn private key buffer into EC_KEY structure */
-static EC_KEY*
+static EVP_PKEY*
ldns_ed25519_priv_raw(uint8_t* pkey, int plen)
{
const unsigned char* pp;
uint8_t buf[256];
int buflen = 0;
- uint8_t pre[] = {0x30, 0x32, 0x02, 0x01, 0x01, 0x04, 0x20};
- int pre_len = 7;
- uint8_t post[] = {0xa0, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
- 0x01, 0xda, 0x47, 0x0f, 0x01};
- int post_len = 13;
- int i;
- /* ASN looks like this for ED25519
+ uint8_t pre[] = {0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06,
+ 0x03, 0x2b, 0x65, 0x70, 0x04, 0x22, 0x04, 0x20};
+ int pre_len = 16;
+ /* ASN looks like this for ED25519 public key
+ * 302a300506032b6570032100 <32byteskey>
+ * for ED25519 private key
+ * 302e020100300506032b657004220420 <32bytes>
+ *
+ * for X25519 this was
* 30320201010420 <32byteskey>
* andparameters a00b06092b06010401da470f01
* (noparameters, preamble is 30250201010420).
* the key is reversed (little endian).
*/
- buflen = pre_len + plen + post_len;
+ buflen = pre_len + plen;
if((size_t)buflen > sizeof(buf))
return NULL;
memmove(buf, pre, pre_len);
- /* reverse the pkey into the buf */
- for(i=0; i<plen; i++)
- buf[pre_len+i] = pkey[plen-1-i];
- memmove(buf+pre_len+plen, post, post_len);
+ memmove(buf+pre_len, pkey, plen);
+ /* reverse the pkey into the buf - key is not reversed it seems */
+ /* for(i=0; i<plen; i++)
+ buf[pre_len+i] = pkey[plen-1-i]; */
pp = buf;
- return d2i_ECPrivateKey(NULL, &pp, buflen);
+ return d2i_PrivateKey(NID_ED25519, NULL, &pp, buflen);
}
/** read ED25519 private key */
@@ -337,7 +347,6 @@ ldns_key_new_frm_fp_ed25519_l(FILE* fp, int* line_nr)
char token[16384];
ldns_rdf* b64rdf = NULL;
EVP_PKEY* evp_key;
- EC_KEY* ec;
if (ldns_fget_keyword_data_l(fp, "PrivateKey", ": ", token, "\n",
sizeof(token), line_nr) == -1)
return NULL;
@@ -348,67 +357,39 @@ ldns_key_new_frm_fp_ed25519_l(FILE* fp, int* line_nr)
* from the private part, which others, EC_KEY_set_private_key,
* and o2i methods, do not do */
/* for that the private key has to be encoded in ASN1 notation
- * with a X25519 prefix on it */
+ * with a ED25519 prefix on it */
- ec = ldns_ed25519_priv_raw(ldns_rdf_data(b64rdf),
+ evp_key = ldns_ed25519_priv_raw(ldns_rdf_data(b64rdf),
(int)ldns_rdf_size(b64rdf));
ldns_rdf_deep_free(b64rdf);
- if(!ec) return NULL;
- if(EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)) != NID_X25519) {
- /* wrong group, bad asn conversion */
- EC_KEY_free(ec);
- return NULL;
- }
-
- evp_key = EVP_PKEY_new();
- if(!evp_key) {
- EC_KEY_free(ec);
- return NULL;
- }
- if (!EVP_PKEY_assign_EC_KEY(evp_key, ec)) {
- EVP_PKEY_free(evp_key);
- EC_KEY_free(ec);
- return NULL;
- }
return evp_key;
}
#endif
#ifdef USE_ED448
/** turn private key buffer into EC_KEY structure */
-static EC_KEY*
+static EVP_PKEY*
ldns_ed448_priv_raw(uint8_t* pkey, int plen)
{
const unsigned char* pp;
uint8_t buf[256];
int buflen = 0;
- uint8_t pre[] = {0x30, 0x4b, 0x02, 0x01, 0x01, 0x04, 0x39};
- int pre_len = 7;
- uint8_t post[] = {0xa0, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04,
- 0x01, 0xda, 0x47, 0x0f, 0x02};
- int post_len = 13;
- int i;
- /* ASN looks like this for ED25519
- * And for ED448, the parameters are ...02 instead of ...01
- * For ED25519 it was:
- * 30320201010420 <32byteskey>
- * andparameters a00b06092b06010401da470f01
- * (noparameters, preamble is 30250201010420).
+ uint8_t pre[] = {0x30, 0x47, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x71, 0x04, 0x3b, 0x04, 0x39};
+ int pre_len = 16;
+ /* ASN looks like this for ED448
+ * 3047020100300506032b6571043b0439 <57bytekey>
* the key is reversed (little endian).
- *
- * For ED448 the key is 57 bytes, and that changes lengths.
- * 304b0201010439 <57bytekey> a00b06092b06010401da470f02
*/
- buflen = pre_len + plen + post_len;
+ buflen = pre_len + plen;
if((size_t)buflen > sizeof(buf))
return NULL;
memmove(buf, pre, pre_len);
- /* reverse the pkey into the buf */
- for(i=0; i<plen; i++)
- buf[pre_len+i] = pkey[plen-1-i];
- memmove(buf+pre_len+plen, post, post_len);
+ memmove(buf+pre_len, pkey, plen);
+ /* reverse the pkey into the buf - key is not reversed it seems */
+ /* for(i=0; i<plen; i++)
+ buf[pre_len+i] = pkey[plen-1-i]; */
pp = buf;
- return d2i_ECPrivateKey(NULL, &pp, buflen);
+ return d2i_PrivateKey(NID_ED448, NULL, &pp, buflen);
}
/** read ED448 private key */
@@ -418,7 +399,6 @@ ldns_key_new_frm_fp_ed448_l(FILE* fp, int* line_nr)
char token[16384];
ldns_rdf* b64rdf = NULL;
EVP_PKEY* evp_key;
- EC_KEY* ec;
if (ldns_fget_keyword_data_l(fp, "PrivateKey", ": ", token, "\n",
sizeof(token), line_nr) == -1)
return NULL;
@@ -426,26 +406,9 @@ ldns_key_new_frm_fp_ed448_l(FILE* fp, int* line_nr)
return NULL;
/* convert private key into ASN notation and then convert that */
- ec = ldns_ed448_priv_raw(ldns_rdf_data(b64rdf),
+ evp_key = ldns_ed448_priv_raw(ldns_rdf_data(b64rdf),
(int)ldns_rdf_size(b64rdf));
ldns_rdf_deep_free(b64rdf);
- if(!ec) return NULL;
- if(EC_GROUP_get_curve_name(EC_KEY_get0_group(ec)) != NID_X448) {
- /* wrong group, bad asn conversion */
- EC_KEY_free(ec);
- return NULL;
- }
-
- evp_key = EVP_PKEY_new();
- if(!evp_key) {
- EC_KEY_free(ec);
- return NULL;
- }
- if (!EVP_PKEY_assign_EC_KEY(evp_key, ec)) {
- EVP_PKEY_free(evp_key);
- EC_KEY_free(ec);
- return NULL;
- }
return evp_key;
}
#endif
@@ -813,7 +776,7 @@ ldns_key_new_frm_fp_rsa_l(FILE *f, int *line_nr)
}
/* I could use functions again, but that seems an overkill,
- * allthough this also looks tedious
+ * although this also looks tedious
*/
/* Modules, rsa->n */
@@ -898,7 +861,7 @@ ldns_key_new_frm_fp_rsa_l(FILE *f, int *line_nr)
}
#endif /* splint */
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
# ifndef S_SPLINT_S
rsa->n = n;
rsa->e = e;
@@ -942,6 +905,7 @@ error:
return NULL;
}
+#ifdef USE_DSA
DSA *
ldns_key_new_frm_fp_dsa(FILE *f)
{
@@ -1018,7 +982,7 @@ ldns_key_new_frm_fp_dsa_l(FILE *f, ATTR_UNUSED(int *line_nr))
}
#endif /* splint */
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
# ifndef S_SPLINT_S
dsa->p = p;
dsa->q = q;
@@ -1052,6 +1016,7 @@ error:
BN_free(pub_key);
return NULL;
}
+#endif /* USE_DSA */
unsigned char *
ldns_key_new_frm_fp_hmac(FILE *f, size_t *hmac_size)
@@ -1065,24 +1030,18 @@ ldns_key_new_frm_fp_hmac_l( FILE *f
, size_t *hmac_size
)
{
- size_t i, bufsz;
+ size_t bufsz;
char d[LDNS_MAX_LINELEN];
unsigned char *buf = NULL;
- if (ldns_fget_keyword_data_l(f, "Key", ": ", d, "\n", LDNS_MAX_LINELEN, line_nr) == -1) {
- goto error;
- }
- bufsz = ldns_b64_ntop_calculate_size(strlen(d));
- buf = LDNS_XMALLOC(unsigned char, bufsz);
- i = (size_t) ldns_b64_pton((const char*)d, buf, bufsz);
-
- *hmac_size = i;
+ *hmac_size = ldns_fget_keyword_data_l(f, "Key", ": ", d, "\n",
+ LDNS_MAX_LINELEN, line_nr) == -1
+ ? 0
+ : (buf = LDNS_XMALLOC( unsigned char, (bufsz =
+ ldns_b64_ntop_calculate_size(strlen(d))))) == NULL
+ ? 0
+ : (size_t) ldns_b64_pton((const char*)d, buf, bufsz);
return buf;
-
- error:
- LDNS_FREE(buf);
- *hmac_size = 0;
- return NULL;
}
#endif /* HAVE_SSL */
@@ -1192,9 +1151,9 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size)
#endif /* HAVE_EVP_PKEY_KEYGEN */
#endif /* HAVE_SSL */
break;
+#ifdef USE_DSA
case LDNS_SIGN_DSA:
case LDNS_SIGN_DSA_NSEC3:
-#ifdef USE_DSA
#ifdef HAVE_SSL
# if OPENSSL_VERSION_NUMBER < 0x00908000L
d = DSA_generate_parameters((int)size, NULL, 0, NULL, NULL, NULL, NULL);
@@ -1314,7 +1273,7 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size)
#ifdef USE_ED25519
case LDNS_SIGN_ED25519:
#ifdef HAVE_EVP_PKEY_KEYGEN
- ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
+ ctx = EVP_PKEY_CTX_new_id(NID_ED25519, NULL);
if(!ctx) {
ldns_key_free(k);
return NULL;
@@ -1324,12 +1283,6 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size)
EVP_PKEY_CTX_free(ctx);
return NULL;
}
- if (EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx,
- NID_X25519) <= 0) {
- ldns_key_free(k);
- EVP_PKEY_CTX_free(ctx);
- return NULL;
- }
if (EVP_PKEY_keygen(ctx, &k->_key.key) <= 0) {
ldns_key_free(k);
EVP_PKEY_CTX_free(ctx);
@@ -1342,7 +1295,7 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size)
#ifdef USE_ED448
case LDNS_SIGN_ED448:
#ifdef HAVE_EVP_PKEY_KEYGEN
- ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL);
+ ctx = EVP_PKEY_CTX_new_id(NID_ED448, NULL);
if(!ctx) {
ldns_key_free(k);
return NULL;
@@ -1352,12 +1305,6 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size)
EVP_PKEY_CTX_free(ctx);
return NULL;
}
- if (EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx,
- NID_X448) <= 0) {
- ldns_key_free(k);
- EVP_PKEY_CTX_free(ctx);
- return NULL;
- }
if (EVP_PKEY_keygen(ctx, &k->_key.key) <= 0) {
ldns_key_free(k);
EVP_PKEY_CTX_free(ctx);
@@ -1499,7 +1446,7 @@ ldns_key_set_keytag(ldns_key *k, uint16_t tag)
size_t
ldns_key_list_key_count(const ldns_key_list *key_list)
{
- return key_list->_key_count;
+ return key_list ? key_list->_key_count : 0;
}
ldns_key *
@@ -1713,7 +1660,7 @@ ldns_key_rsa2bin(unsigned char *data, RSA *k, uint16_t *size)
if (!k) {
return false;
}
-#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(HAVE_LIBRESSL)
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || (defined(HAVE_LIBRESSL) && LIBRESSL_VERSION_NUMBER < 0x20700000)
n = k->n;
e = k->e;
#else
@@ -1809,6 +1756,46 @@ ldns_key_gost2bin(unsigned char* data, EVP_PKEY* k, uint16_t* size)
return true;
}
#endif /* USE_GOST */
+
+#ifdef USE_ED25519
+static bool
+ldns_key_ed255192bin(unsigned char* data, EVP_PKEY* k, uint16_t* size)
+{
+ int i;
+ unsigned char* pp = NULL;
+ if(i2d_PUBKEY(k, &pp) != 12 + 32) {
+ /* expect 12 byte(ASN header) and 32 byte(pubkey) */
+ free(pp);
+ return false;
+ }
+ /* omit ASN header */
+ for(i=0; i<32; i++)
+ data[i] = pp[i+12];
+ free(pp);
+ *size = 32;
+ return true;
+}
+#endif /* USE_ED25519 */
+
+#ifdef USE_ED448
+static bool
+ldns_key_ed4482bin(unsigned char* data, EVP_PKEY* k, uint16_t* size)
+{
+ int i;
+ unsigned char* pp = NULL;
+ if(i2d_PUBKEY(k, &pp) != 12 + 57) {
+ /* expect 12 byte(ASN header) and 57 byte(pubkey) */
+ free(pp);
+ return false;
+ }
+ /* omit ASN header */
+ for(i=0; i<57; i++)
+ data[i] = pp[i+12];
+ free(pp);
+ *size = 57;
+ return true;
+}
+#endif /* USE_ED448 */
#endif /* splint */
#endif /* HAVE_SSL */
@@ -1893,10 +1880,10 @@ ldns_key2rr(const ldns_key *k)
#endif
size++;
break;
+#ifdef USE_DSA
case LDNS_SIGN_DSA:
ldns_rr_push_rdf(pubkey,
ldns_native2rdf_int8(LDNS_RDF_TYPE_ALG, LDNS_DSA));
-#ifdef USE_DSA
#ifdef HAVE_SSL
dsa = ldns_key_dsa_key(k);
if (dsa) {
@@ -1916,10 +1903,10 @@ ldns_key2rr(const ldns_key *k)
#endif /* HAVE_SSL */
#endif /* USE_DSA */
break;
+#ifdef USE_DSA
case LDNS_SIGN_DSA_NSEC3:
ldns_rr_push_rdf(pubkey,
ldns_native2rdf_int8(LDNS_RDF_TYPE_ALG, LDNS_DSA_NSEC3));
-#ifdef USE_DSA
#ifdef HAVE_SSL
dsa = ldns_key_dsa_key(k);
if (dsa) {
@@ -1999,18 +1986,16 @@ ldns_key2rr(const ldns_key *k)
case LDNS_SIGN_ED25519:
ldns_rr_push_rdf(pubkey, ldns_native2rdf_int8(
LDNS_RDF_TYPE_ALG, ldns_key_algorithm(k)));
- bin = NULL;
- ec = EVP_PKEY_get1_EC_KEY(k->_key.key);
- EC_KEY_set_conv_form(ec, POINT_CONVERSION_UNCOMPRESSED);
- size = (uint16_t)i2o_ECPublicKey(ec, NULL);
- if(!i2o_ECPublicKey(ec, &bin)) {
- EC_KEY_free(ec);
+ bin = LDNS_XMALLOC(unsigned char, LDNS_MAX_KEYLEN);
+ if (!bin) {
ldns_rr_free(pubkey);
- return NULL;
+ return NULL;
}
- /* down the reference count for ec, its still assigned
- * to the pkey */
- EC_KEY_free(ec);
+ if (!ldns_key_ed255192bin(bin, k->_key.key, &size)) {
+ LDNS_FREE(bin);
+ ldns_rr_free(pubkey);
+ return NULL;
+ }
internal_data = 1;
break;
#endif
@@ -2018,18 +2003,16 @@ ldns_key2rr(const ldns_key *k)
case LDNS_SIGN_ED448:
ldns_rr_push_rdf(pubkey, ldns_native2rdf_int8(
LDNS_RDF_TYPE_ALG, ldns_key_algorithm(k)));
- bin = NULL;
- ec = EVP_PKEY_get1_EC_KEY(k->_key.key);
- EC_KEY_set_conv_form(ec, POINT_CONVERSION_UNCOMPRESSED);
- size = (uint16_t)i2o_ECPublicKey(ec, NULL);
- if(!i2o_ECPublicKey(ec, &bin)) {
- EC_KEY_free(ec);
+ bin = LDNS_XMALLOC(unsigned char, LDNS_MAX_KEYLEN);
+ if (!bin) {
ldns_rr_free(pubkey);
- return NULL;
+ return NULL;
}
- /* down the reference count for ec, its still assigned
- * to the pkey */
- EC_KEY_free(ec);
+ if (!ldns_key_ed4482bin(bin, k->_key.key, &size)) {
+ LDNS_FREE(bin);
+ ldns_rr_free(pubkey);
+ return NULL;
+ }
internal_data = 1;
break;
#endif
@@ -2184,7 +2167,9 @@ ldns_signing_algorithm ldns_get_signing_algorithm_by_name(const char* name)
ldns_lookup_table aliases[] = {
/* from bind dnssec-keygen */
{LDNS_SIGN_HMACMD5, "HMAC-MD5"},
+#ifdef USE_DSA
{LDNS_SIGN_DSA_NSEC3, "NSEC3DSA"},
+#endif /* USE_DSA */
{LDNS_SIGN_RSASHA1_NSEC3, "NSEC3RSASHA1"},
/* old ldns usage, now RFC names */
#ifdef USE_DSA
diff --git a/ldns/buffer.h b/ldns/buffer.h
index f49a550bbd15..79ae0f5cc15e 100644
--- a/ldns/buffer.h
+++ b/ldns/buffer.h
@@ -400,6 +400,22 @@ ldns_buffer_write_string(ldns_buffer *buffer, const char *str)
}
/**
+ * copies the given (null-delimited) string to the current position at the buffer
+ * increasing the capacity if necessary
+ * \param[in] buffer the buffer
+ * \param[in] str the string to write
+ */
+INLINE void
+ldns_buffer_write_chars(ldns_buffer *buffer, const char *str)
+{
+ if (!ldns_buffer_reserve(buffer, strlen(str)))
+ buffer->_status = LDNS_STATUS_MEM_ERR;
+ else
+ ldns_buffer_write_string(buffer, str);
+}
+
+
+/**
* writes the given byte of data at the given position in the buffer
* \param[in] buffer the buffer
* \param[in] at the position in the buffer
@@ -425,6 +441,21 @@ ldns_buffer_write_u8(ldns_buffer *buffer, uint8_t data)
}
/**
+ * writes the given byte of data at the current position in the buffer
+ * increasing the capacity if necessary
+ * \param[in] buffer the buffer
+ * \param[in] data the 8 bits to write
+ */
+INLINE void
+ldns_buffer_write_char(ldns_buffer *buffer, uint8_t data)
+{
+ if (!ldns_buffer_reserve(buffer, sizeof(data)))
+ buffer->_status = LDNS_STATUS_MEM_ERR;
+ else
+ ldns_buffer_write_u8(buffer, data);
+}
+
+/**
* writes the given 2 byte integer at the given position in the buffer
* \param[in] buffer the buffer
* \param[in] at the position in the buffer
diff --git a/ldns/common.h.in b/ldns/common.h.in
index 805eb8bf42c7..db559608b06c 100644
--- a/ldns/common.h.in
+++ b/ldns/common.h.in
@@ -27,6 +27,9 @@
#define LDNS_BUILD_CONFIG_USE_DANE @ldns_build_config_use_dane@
#define LDNS_BUILD_CONFIG_HAVE_B32_PTON @ldns_build_config_have_b32_pton@
#define LDNS_BUILD_CONFIG_HAVE_B32_NTOP @ldns_build_config_have_b32_ntop@
+#define LDNS_BUILD_CONFIG_USE_DSA @ldns_build_config_use_dsa@
+#define LDNS_BUILD_CONFIG_USE_ED25519 @ldns_build_config_use_ed25519@
+#define LDNS_BUILD_CONFIG_USE_ED448 @ldns_build_config_use_ed448@
/*
* HAVE_STDBOOL_H is not available when distributed as a library, but no build
diff --git a/ldns/config.h.in b/ldns/config.h.in
index dcf5488ee751..a459fe53e501 100644
--- a/ldns/config.h.in
+++ b/ldns/config.h.in
@@ -30,6 +30,15 @@
/* Define to 1 if you have the `calloc' function. */
#undef HAVE_CALLOC
+/* Define to 1 if you have the `CONF_modules_unload' function. */
+#undef HAVE_CONF_MODULES_UNLOAD
+
+/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */
+#undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
+
+/* Define to 1 if you have the `CRYPTO_memcmp' function. */
+#undef HAVE_CRYPTO_MEMCMP
+
/* Define to 1 if you have the `ctime_r' function. */
#undef HAVE_CTIME_R
@@ -39,17 +48,21 @@
/* Is a CAPATH given at configure time */
#undef HAVE_DANE_CA_PATH
-/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
+/* Define to 1 if you have the declaration of `EVP_PKEY_base_id', and to 0 if
+ you don't. */
+#undef HAVE_DECL_EVP_PKEY_BASE_ID
+
+/* Define to 1 if you have the declaration of `NID_ED25519', and to 0 if you
don't. */
-#undef HAVE_DECL_NID_SECP384R1
+#undef HAVE_DECL_NID_ED25519
-/* Define to 1 if you have the declaration of `NID_X25519', and to 0 if you
+/* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you
don't. */
-#undef HAVE_DECL_NID_X25519
+#undef HAVE_DECL_NID_ED448
-/* Define to 1 if you have the declaration of `NID_X448', and to 0 if you
+/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
don't. */
-#undef HAVE_DECL_NID_X448
+#undef HAVE_DECL_NID_SECP384R1
/* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
if you don't. */
@@ -79,8 +92,20 @@
/* Define to 1 if you have the `endservent' function. */
#undef HAVE_ENDSERVENT
-/* Define to 1 if you have the `ENGINE_load_cryptodev' function. */
-#undef HAVE_ENGINE_LOAD_CRYPTODEV
+/* Define to 1 if you have the `ENGINE_cleanup' function. */
+#undef HAVE_ENGINE_CLEANUP
+
+/* Define to 1 if you have the `ENGINE_free' function. */
+#undef HAVE_ENGINE_FREE
+
+/* Define to 1 if you have the `ERR_free_strings' function. */
+#undef HAVE_ERR_FREE_STRINGS
+
+/* Define to 1 if you have the `ERR_load_crypto_strings' function. */
+#undef HAVE_ERR_LOAD_CRYPTO_STRINGS
+
+/* Define to 1 if you have the `EVP_cleanup' function. */
+#undef HAVE_EVP_CLEANUP
/* Define to 1 if you have the `EVP_dss1' function. */
#undef HAVE_EVP_DSS1
@@ -88,9 +113,12 @@
/* Define to 1 if you have the `EVP_MD_CTX_new' function. */
#undef HAVE_EVP_MD_CTX_NEW
-/* Define to 1 if you have the `EVP_PKEY_base_id' function. */
+/* Define to 1 if you have the EVP_PKEY_base_id function or macro. */
#undef HAVE_EVP_PKEY_BASE_ID
+/* Define to 1 if you have the `EVP_PKEY_get_base_id' function. */
+#undef HAVE_EVP_PKEY_GET_BASE_ID
+
/* Define to 1 if you have the `EVP_PKEY_keygen' function. */
#undef HAVE_EVP_PKEY_KEYGEN
@@ -109,6 +137,9 @@
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
+/* if fork is available for compile */
+#undef HAVE_FORK_AVAILABLE
+
/* Whether getaddrinfo is available */
#undef HAVE_GETADDRINFO
@@ -118,9 +149,6 @@
/* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R
-/* If you have HMAC_Update */
-#undef HAVE_HMAC_UPDATE
-
/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON
@@ -151,19 +179,15 @@
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#undef HAVE_MALLOC
-
/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
+/* Define to 1 if you have the <minix/config.h> header file. */
+#undef HAVE_MINIX_CONFIG_H
+
/* Define to 1 if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
@@ -197,9 +221,24 @@
/* Define to 1 if you have the <net/if.h> header file. */
#undef HAVE_NET_IF_H
+/* Define to 1 if you have the <openssl/conf.h> header file. */
+#undef HAVE_OPENSSL_CONF_H
+
+/* Define to 1 if you have the <openssl/engine.h> header file. */
+#undef HAVE_OPENSSL_ENGINE_H
+
/* Define to 1 if you have the <openssl/err.h> header file. */
#undef HAVE_OPENSSL_ERR_H
+/* Define to 1 if you have the <openssl/evp.h> header file. */
+#undef HAVE_OPENSSL_EVP_H
+
+/* Define to 1 if you have the `OPENSSL_init_crypto' function. */
+#undef HAVE_OPENSSL_INIT_CRYPTO
+
+/* Define to 1 if you have the `OPENSSL_init_ssl' function. */
+#undef HAVE_OPENSSL_INIT_SSL
+
/* Define to 1 if you have the <openssl/rand.h> header file. */
#undef HAVE_OPENSSL_RAND_H
@@ -218,10 +257,6 @@
/* Define to 1 if you have the `random' function. */
#undef HAVE_RANDOM
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
- and to 0 otherwise. */
-#undef HAVE_REALLOC
-
/* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP
@@ -240,6 +275,9 @@
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
@@ -273,6 +311,9 @@
/* define if you have sys/types.h */
#undef HAVE_SYS_TYPES_H
+/* Define to 1 if you have the <TargetConditionals.h> header file. */
+#undef HAVE_TARGETCONDITIONALS_H
+
/* Define to 1 if you have the `timegm' function. */
#undef HAVE_TIMEGM
@@ -288,6 +329,9 @@
/* Define to 1 if you have the <vfork.h> header file. */
#undef HAVE_VFORK_H
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
/* Define to 1 if you have the <winsock2.h> header file. */
#undef HAVE_WINSOCK2_H
@@ -330,9 +374,15 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* Define this to enable RR type AMTRELAY. */
+#undef RRTYPE_AMTRELAY
+
/* Define this to enable RR type AVC. */
#undef RRTYPE_AVC
+/* Define this to enable RR type DOA. */
+#undef RRTYPE_DOA
+
/* Define this to enable RR type NINFO. */
#undef RRTYPE_NINFO
@@ -342,13 +392,18 @@
/* Define this to enable RR type RKEY. */
#undef RRTYPE_RKEY
+/* Define this to enable RR types SVCB and HTTPS. */
+#undef RRTYPE_SVCB_HTTPS
+
/* Define this to enable RR type TA. */
#undef RRTYPE_TA
/* The size of `time_t', as computed by sizeof. */
#undef SIZEOF_TIME_T
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
#undef STDC_HEADERS
/* Define this to enable messages to stderr. */
@@ -388,21 +443,87 @@
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
+/* Enable general extensions on macOS. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
-/* Enable threading extensions on Solaris. */
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
+/* Identify the host operating system as Minix.
+ This macro does not affect the system headers' behavior.
+ A future release of Autoconf may stop defining this macro. */
+#ifndef _MINIX
+# undef _MINIX
+#endif
+/* Enable general extensions on NetBSD.
+ Enable NetBSD compatibility extensions on Minix. */
+#ifndef _NETBSD_SOURCE
+# undef _NETBSD_SOURCE
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+ Oddly enough, this does nothing on OpenBSD. */
+#ifndef _OPENBSD_SOURCE
+# undef _OPENBSD_SOURCE
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_SOURCE
+# undef _POSIX_SOURCE
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_1_SOURCE
+# undef _POSIX_1_SOURCE
+#endif
+/* Enable POSIX-compatible threading on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# undef __STDC_WANT_IEC_60559_BFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# undef __STDC_WANT_IEC_60559_DFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# undef __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
+#ifndef __STDC_WANT_LIB_EXT2__
+# undef __STDC_WANT_LIB_EXT2__
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# undef __STDC_WANT_MATH_SPEC_FUNCS__
+#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
+/* Enable X/Open extensions. Define to 500 only if necessary
+ to make mbstate_t available. */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
#endif
@@ -424,19 +545,9 @@
# endif
#endif
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
/* Enable for compile on Minix */
#undef _NETBSD_SOURCE
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
@@ -467,15 +578,9 @@
/* Define to `size_t' if <sys/types.h> does not define. */
#undef intptr_t
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define as a signed integer type capable of holding a process identifier. */
#undef pid_t
-/* Define to rpl_realloc if the replacement function should be used. */
-#undef realloc
-
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
@@ -644,10 +749,10 @@ size_t strlcpy(char *dst, const char *src, size_t siz);
#ifdef USE_WINSOCK
#define SOCK_INVALID INVALID_SOCKET
-#define close_socket(_s) do { if (_s > SOCK_INVALID) {closesocket(_s); _s = SOCK_INVALID;} } while(0)
+#define close_socket(_s) do { if (_s != SOCK_INVALID) {closesocket(_s); _s = -1;} } while(0)
#else
#define SOCK_INVALID -1
-#define close_socket(_s) do { if (_s > SOCK_INVALID) {close(_s); _s = SOCK_INVALID;} } while(0)
+#define close_socket(_s) do { if (_s != SOCK_INVALID) {close(_s); _s = -1;} } while(0)
#endif
#ifdef __cplusplus
diff --git a/ldns/dane.h b/ldns/dane.h
index 142afb8d21b5..b5366e0e5ccd 100644
--- a/ldns/dane.h
+++ b/ldns/dane.h
@@ -43,7 +43,7 @@ enum ldns_enum_tlsa_certificate_usage
/** CA constraint */
LDNS_TLSA_USAGE_PKIX_TA = 0,
LDNS_TLSA_USAGE_CA_CONSTRAINT = 0,
- /** Sevice certificate constraint */
+ /** Service certificate constraint */
LDNS_TLSA_USAGE_PKIX_EE = 1,
LDNS_TLSA_USAGE_SERVICE_CERTIFICATE_CONSTRAINT = 1,
/** Trust anchor assertion */
@@ -122,7 +122,7 @@ typedef enum ldns_enum_dane_transport ldns_dane_transport;
*
* \param[out] tlsa_owner The created dname.
* \param[in] name The dname that should be prefixed.
- * \param[in] port The service port number for wich the name should be created.
+ * \param[in] port The service port number for which the name should be created.
* \param[in] transport The transport for which the name should be created.
* \return LDNS_STATUS_OK on success or an error code otherwise.
*/
diff --git a/ldns/dname.h b/ldns/dname.h
index 494ef28544c2..b76e823d738a 100644
--- a/ldns/dname.h
+++ b/ldns/dname.h
@@ -134,7 +134,7 @@ ldns_rdf *ldns_dname_new_frm_data(uint16_t size, const void *data);
void ldns_dname2canonical(const ldns_rdf *rdf);
/**
- * test wether the name sub falls under parent (i.e. is a subdomain
+ * 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.
* \param[in] sub the name to test
diff --git a/ldns/dnssec.h b/ldns/dnssec.h
index 41691b63e732..6ce305aeb754 100644
--- a/ldns/dnssec.h
+++ b/ldns/dnssec.h
@@ -355,7 +355,7 @@ uint8_t ldns_nsec3_salt_length(const ldns_rr *nsec3_rr);
/**
* Returns the salt bytes used in the given NSEC3 RR
* \param[in] *nsec3_rr The RR to read from
- * \return The salt in bytes, this is alloced, so you need to free it
+ * \return The salt in bytes, this is alloc'ed, so you need to free it
*/
uint8_t *ldns_nsec3_salt_data(const ldns_rr *nsec3_rr);
@@ -556,56 +556,6 @@ ldns_status
ldns_convert_ecdsa_rrsig_rdf2asn1(ldns_buffer *target_buffer,
const ldns_rdf *sig_rdf);
-/**
- * Converts the ECDSA signature from ASN1 representation (as
- * used by OpenSSL) to raw signature data as used in DNS
- * This routine is only present if ldns is compiled with ED25519 support.
- *
- * \param[in] sig The signature in ASN1 format
- * \param[in] sig_len The length of the signature
- * \return a new rdf with the signature
- */
-ldns_rdf *
-ldns_convert_ed25519_rrsig_asn12rdf(const ldns_buffer *sig, long sig_len);
-
-/**
- * Converts the RRSIG signature RDF (from DNS) to a buffer with the
- * signature in ASN1 format as openssl uses it.
- * This routine is only present if ldns is compiled with ED25519 support.
- *
- * \param[out] target_buffer buffer to place the signature data in ASN1.
- * \param[in] sig_rdf The signature rdf to convert
- * \return LDNS_STATUS_OK on success, error code otherwise
- */
-ldns_status
-ldns_convert_ed25519_rrsig_rdf2asn1(ldns_buffer *target_buffer,
- const ldns_rdf *sig_rdf);
-
-/**
- * Converts the ECDSA signature from ASN1 representation (as
- * used by OpenSSL) to raw signature data as used in DNS
- * This routine is only present if ldns is compiled with ED448 support.
- *
- * \param[in] sig The signature in ASN1 format
- * \param[in] sig_len The length of the signature
- * \return a new rdf with the signature
- */
-ldns_rdf *
-ldns_convert_ed448_rrsig_asn12rdf(const ldns_buffer *sig, long sig_len);
-
-/**
- * Converts the RRSIG signature RDF (from DNS) to a buffer with the
- * signature in ASN1 format as openssl uses it.
- * This routine is only present if ldns is compiled with ED448 support.
- *
- * \param[out] target_buffer buffer to place the signature data in ASN1.
- * \param[in] sig_rdf The signature rdf to convert
- * \return LDNS_STATUS_OK on success, error code otherwise
- */
-ldns_status
-ldns_convert_ed448_rrsig_rdf2asn1(ldns_buffer *target_buffer,
- const ldns_rdf *sig_rdf);
-
#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
#ifdef __cplusplus
diff --git a/ldns/dnssec_sign.h b/ldns/dnssec_sign.h
index a88a46affab1..4523811f1aad 100644
--- a/ldns/dnssec_sign.h
+++ b/ldns/dnssec_sign.h
@@ -12,8 +12,11 @@ extern "C" {
/* sign functions */
/** Sign flag that makes DNSKEY type signed by all keys, not only by SEP keys*/
-#define LDNS_SIGN_DNSKEY_WITH_ZSK 1
-#define LDNS_SIGN_WITH_ALL_ALGORITHMS 2
+#define LDNS_SIGN_DNSKEY_WITH_ZSK 1
+#define LDNS_SIGN_WITH_ALL_ALGORITHMS 2
+#define LDNS_SIGN_NO_KEYS_NO_NSECS 4
+#define LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA384 8
+#define LDNS_SIGN_WITH_ZONEMD_SIMPLE_SHA512 16
/**
* Create an empty RRSIG RR (i.e. without the actual signature data)
@@ -46,9 +49,10 @@ ldns_rr_list *ldns_sign_public(ldns_rr_list *rrset, ldns_key_list *keys);
#if LDNS_BUILD_CONFIG_HAVE_SSL
/**
* Sign a buffer with the DSA key (hash with SHA1)
- * \param[in] to_sign buffer with the data
- * \param[in] key the key to use
- * \return a ldns_rdf with the signed data
+ *
+ * \param[in] to_sign The ldns_buffer containing raw data that is to be signed
+ * \param[in] key The DSA key structure to sign with
+ * \return a ldns_rdf for the RRSIG ldns_rr
*/
ldns_rdf *ldns_sign_public_dsa(ldns_buffer *to_sign, DSA *key);
@@ -109,7 +113,7 @@ ldns_dnssec_zone_mark_and_get_glue(
* be taken into account separately.
*
* \param[in] zone the zone in which to mark the names
- * \return LDNS_STATUS_OK on succesful completion
+ * \return LDNS_STATUS_OK on successful completion, an error code otherwise
*/
ldns_status
ldns_dnssec_zone_mark_glue(ldns_dnssec_zone *zone);
diff --git a/ldns/dnssec_verify.h b/ldns/dnssec_verify.h
index 26e3272b5d7c..0ce6ec99d2fc 100644
--- a/ldns/dnssec_verify.h
+++ b/ldns/dnssec_verify.h
@@ -592,7 +592,7 @@ ldns_status ldns_dnssec_verify_denial_nsec3(ldns_rr *rr,
* \param[in] packet_qtype The original query RR type
* \param[in] packet_nodata True if the providing packet had an empty ANSWER
* section
- * \param[in] match On match, the given (reference to a) pointer will be set
+ * \param[out] match On match, the given (reference to a) pointer will be set
* to point to the matching nsec resource record.
* \return LDNS_STATUS_OK if the NSEC3 RRs deny the existence, error code
* containing the reason they do not otherwise
@@ -692,7 +692,7 @@ ldns_status ldns_verify_rrsig_keylist_notime(const ldns_rr_list *rrset,
* \param[in] rrset the rrset
* \param[in] rrsig the rrsig to verify
* \param[in] key the key to use
- * \return status message wether verification succeeded.
+ * \return status message whether verification succeeded.
*/
ldns_status ldns_verify_rrsig(ldns_rr_list *rrset,
ldns_rr *rrsig,
@@ -705,7 +705,7 @@ ldns_status ldns_verify_rrsig(ldns_rr_list *rrset,
* \param[in] rrsig the rrsig to verify
* \param[in] key the key to use
* \param[in] check_time the time for which the validation is performed
- * \return status message wether verification succeeded.
+ * \return status message whether verification succeeded.
*/
ldns_status ldns_verify_rrsig_time(
ldns_rr_list *rrset, ldns_rr *rrsig,
diff --git a/ldns/dnssec_zone.h b/ldns/dnssec_zone.h
index e97ea30c6008..156e39102327 100644
--- a/ldns/dnssec_zone.h
+++ b/ldns/dnssec_zone.h
@@ -53,7 +53,7 @@ struct ldns_struct_dnssec_name
* Usually, the name is a pointer to the owner name of the first rr for
* this name, but sometimes there is no actual data to point to,
* for instance in
- * names representing empty nonterminals. If so, set alloced to true to
+ * names representing empty nonterminals. If so, set name_alloced to true to
* indicate that this data must also be freed when the name is freed
*/
bool name_alloced;
@@ -93,7 +93,7 @@ struct ldns_struct_dnssec_zone {
ldns_dnssec_name *soa;
/** tree of ldns_dnssec_names */
ldns_rbtree_t *names;
- /** tree of ldns_dnssec_names by nsec3 hashes (when applicible) */
+ /** tree of ldns_dnssec_names by nsec3 hashes (when applicable) */
ldns_rbtree_t *hashed_names;
/** points to the first added NSEC3 rr whose parameters will be
* assumed for all subsequent NSEC3 rr's and which will be used
@@ -204,7 +204,7 @@ ldns_status ldns_dnssec_rrsets_set_type(ldns_dnssec_rrsets *rrsets,
ldns_status ldns_dnssec_rrsets_add_rr(ldns_dnssec_rrsets *rrsets, ldns_rr *rr);
/**
- * Print the given list of rrsets to the fiven file descriptor
+ * Print the given list of rrsets to the given file descriptor
*
* \param[in] out the file descriptor to print to
* \param[in] rrsets the list of RRsets to print
@@ -215,7 +215,7 @@ void ldns_dnssec_rrsets_print(FILE *out,
bool follow);
/**
- * Print the given list of rrsets to the fiven file descriptor
+ * Print the given list of rrsets to the given file descriptor
*
* \param[in] out the file descriptor to print to
* \param[in] fmt the format of the textual representation
@@ -297,12 +297,12 @@ void ldns_dnssec_name_set_nsec(ldns_dnssec_name *name, ldns_rr *nsec);
/**
* Compares the domain names of the two arguments in their
- * canonical ordening.
+ * canonical ordering.
*
* \param[in] a The first dnssec_name to compare
* \param[in] b The second dnssec_name to compare
* \return -1 if the domain name of a comes before that of b in canonical
- * ordening, 1 if it is the other way around, and 0 if they are
+ * ordering, 1 if it is the other way around, and 0 if they are
* equal
*/
int ldns_dnssec_name_cmp(const void *a, const void *b);
@@ -476,6 +476,8 @@ ldns_status ldns_dnssec_zone_add_empty_nonterminals(ldns_dnssec_zone *zone);
*/
bool ldns_dnssec_zone_is_nsec3_optout(const ldns_dnssec_zone* zone);
+ldns_status ldns_dnssec_zone_verify_zonemd(ldns_dnssec_zone *zone);
+
#ifdef __cplusplus
}
#endif
diff --git a/ldns/edns.h b/ldns/edns.h
new file mode 100644
index 000000000000..594fda22f788
--- /dev/null
+++ b/ldns/edns.h
@@ -0,0 +1,272 @@
+/*
+ * edns.h
+ *
+ *
+ * a Net::DNS like library for C
+ *
+ * (c) NLnet Labs, 2004-2022
+ *
+ * See the file LICENSE for the license
+ */
+
+#ifndef LDNS_EDNS_H
+#define LDNS_EDNS_H
+
+#include <ldns/common.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/**
+ * EDNS option codes
+ */
+enum ldns_enum_edns_option
+{
+ LDNS_EDNS_LLQ = 1, /* RFC8764 */
+ LDNS_EDNS_UL = 2, /* http://files.dns-sd.org/draft-sekar-dns-ul.txt */
+ LDNS_EDNS_NSID = 3, /* RFC5001 */
+ /* 4 draft-cheshire-edns0-owner-option */
+ LDNS_EDNS_DAU = 5, /* RFC6975 */
+ LDNS_EDNS_DHU = 6, /* RFC6975 */
+ LDNS_EDNS_N3U = 7, /* RFC6975 */
+ LDNS_EDNS_CLIENT_SUBNET = 8, /* RFC7871 */
+ LDNS_EDNS_EXPIRE = 9, /* RFC7314 */
+ LDNS_EDNS_COOKIE = 10, /* RFC7873 */
+ LDNS_EDNS_KEEPALIVE = 11, /* RFC7828*/
+ LDNS_EDNS_PADDING = 12, /* RFC7830 */
+ LDNS_EDNS_CHAIN = 13, /* RFC7901 */
+ LDNS_EDNS_KEY_TAG = 14, /* RFC8145 */
+ LDNS_EDNS_EDE = 15, /* RFC8914 */
+ LDNS_EDNS_CLIENT_TAG = 16, /* draft-bellis-dnsop-edns-tags-01 */
+ LDNS_EDNS_SERVER_TAG = 17 /* draft-bellis-dnsop-edns-tags-01 */
+};
+typedef enum ldns_enum_edns_option ldns_edns_option_code;
+
+/**
+ * Extended DNS Error (RFC 8914) codes
+ */
+enum ldns_edns_enum_ede_code
+{
+ LDNS_EDE_OTHER = 0,
+ LDNS_EDE_UNSUPPORTED_DNSKEY_ALG = 1,
+ LDNS_EDE_UNSUPPORTED_DS_DIGEST = 2,
+ LDNS_EDE_STALE_ANSWER = 3,
+ LDNS_EDE_FORGED_ANSWER = 4,
+ LDNS_EDE_DNSSEC_INDETERMINATE = 5,
+ LDNS_EDE_DNSSEC_BOGUS = 6,
+ LDNS_EDE_SIGNATURE_EXPIRED = 7,
+ LDNS_EDE_SIGNATURE_NOT_YET_VALID = 8,
+ LDNS_EDE_DNSKEY_MISSING = 9,
+ LDNS_EDE_RRSIGS_MISSING = 10,
+ LDNS_EDE_NO_ZONE_KEY_BIT_SET = 11,
+ LDNS_EDE_NSEC_MISSING = 12,
+ LDNS_EDE_CACHED_ERROR = 13,
+ LDNS_EDE_NOT_READY = 14,
+ LDNS_EDE_BLOCKED = 15,
+ LDNS_EDE_CENSORED = 16,
+ LDNS_EDE_FILTERED = 17,
+ LDNS_EDE_PROHIBITED = 18,
+ LDNS_EDE_STALE_NXDOMAIN_ANSWER = 19,
+ LDNS_EDE_NOT_AUTHORITATIVE = 20,
+ LDNS_EDE_NOT_SUPPORTED = 21,
+ LDNS_EDE_NO_REACHABLE_AUTHORITY = 22,
+ LDNS_EDE_NETWORK_ERROR = 23,
+ LDNS_EDE_INVALID_DATA = 24,
+ LDNS_EDE_SIGNATURE_EXPIRED_BEFORE_VALID = 25,
+ LDNS_EDE_TOO_EARLY = 26
+};
+typedef enum ldns_edns_enum_ede_code ldns_edns_ede_code;
+
+/**
+ * The struct that stores an ordered EDNS option.
+ * An EDNS option is structed as follows:
+ +0 (MSB) +1 (LSB)
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+ 0: | OPTION-CODE |
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+ 2: | OPTION-LENGTH |
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+ 4: | |
+ / OPTION-DATA /
+ / /
+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+ */
+struct ldns_struct_edns_option {
+ ldns_edns_option_code _code;
+ size_t _size;
+ void *_data;
+};
+typedef struct ldns_struct_edns_option ldns_edns_option;
+
+
+/*
+ * Array structure to store multiple EDNS options
+ */
+struct ldns_struct_edns_option_list
+{
+ size_t _option_count; /* the number of EDNS options in the list */
+ size_t _option_capacity; /* the amount of options that fit into the list */
+ size_t _options_size; /* the total size of the options serialized */
+ ldns_edns_option **_options;
+};
+typedef struct ldns_struct_edns_option_list ldns_edns_option_list;
+
+/*
+ * Access functions
+ * do this as functions to get type checking
+ */
+
+/**
+ * returns the size of the EDNS data.
+ * \param[in] *edns the EDNS struct to read from
+ * \return uint16_t with the size
+ */
+size_t ldns_edns_get_size(const ldns_edns_option *edns);
+
+/**
+ * returns the option code of the EDNS data.
+ * \param[in] *edns the EDNS struct to read from
+ * \return uint16_t with the size
+ */
+ldns_edns_option_code ldns_edns_get_code(const ldns_edns_option *edns);
+
+/**
+ * returns the EDNS option data.
+ * \param[in] *edns the EDNS option to read from
+ * \return uint8_t* pointer to the EDNS option's data
+ */
+uint8_t *ldns_edns_get_data(const ldns_edns_option *edns);
+
+
+/**
+ * serialise the EDNS option into wireformat.
+ * \param[in] *edns the EDNS option to read from
+ * \return ldns_buffer* the buffer containing the data
+ */
+ldns_buffer *ldns_edns_get_wireformat_buffer(const ldns_edns_option *edns);
+
+/* Constructors and destructors*/
+
+/**
+ * allocates a new EDNS structure and fills it. This function *DOES NOT* copy
+ * the contents from the data parameter.
+ * \param[in] code the EDNS code
+ * \param[in] size size of the buffer
+ * \param[in] data pointer to the buffer to be assigned
+ * \return the new EDNS structure or NULL on failure
+ */
+ldns_edns_option *ldns_edns_new(ldns_edns_option_code code, size_t size, void *data);
+
+/**
+ * allocates a new EDNS structure and fills it. This function *DOES* copy
+ * the contents from the data parameter.
+ * \param[in] code the EDNS code
+ * \param[in] size size of the buffer
+ * \param[in] data pointer to the buffer to be assigned
+ * \return the new EDNS structure or NULL on failure
+ */
+ldns_edns_option *ldns_edns_new_from_data(ldns_edns_option_code code, size_t size, const void *data);
+
+/**
+ * clone an EDNS option
+ * \param[in] edns the EDNS option
+ * \return the new EDNS structure
+ */
+ldns_edns_option *ldns_edns_clone(ldns_edns_option *edns);
+
+/**
+ * free the EDNS option. Use deep_free if the _data member is allocated.
+ * \param[in] edns the EDNS option to free
+ */
+void ldns_edns_deep_free(ldns_edns_option *edns);
+void ldns_edns_free(ldns_edns_option *edns);
+
+/**
+ * allocates space for a new list of EDNS options
+ * \return the new EDNS option list or NULL on failure
+ */
+ldns_edns_option_list* ldns_edns_option_list_new(void);
+
+/**
+ * clone the EDNS options list and it's contents
+ * \param[in] options_list the EDNS options_list to read from
+ * \return the new EDNS option list
+ */
+ldns_edns_option_list *ldns_edns_option_list_clone(ldns_edns_option_list *options_list);
+
+/**
+ * free the EDNS option list. Use deep_free to free the options options
+ * in the list as well.
+ * \param[in] options_list the EDNS option to free
+ */
+void ldns_edns_option_list_free(ldns_edns_option_list *options_list);
+void ldns_edns_option_list_deep_free(ldns_edns_option_list *options_list);
+
+/* edns_option_list functions */
+
+/**
+ * returns the number of options in the EDNS options list.
+ * \param[in] options_list the EDNS options_list to read from
+ * \return the number of EDNS options
+ */
+size_t ldns_edns_option_list_get_count(const ldns_edns_option_list *options_list);
+
+/**
+ * returns the EDNS option as the specified index in the list of EDNS options.
+ * \param[in] options_list the EDNS options_list to read from
+ * \param[in] index the location of the EDNS option to get in the list
+ * \return the EDNS option located at the index or NULL on failure
+ */
+ldns_edns_option* ldns_edns_option_list_get_option(const ldns_edns_option_list *options_list,
+ size_t index);
+
+
+/**
+ * returns the total size of all the individual EDNS options in the EDNS list.
+ * \param[in] options_list the EDNS options_list to read from
+ * \return the total size of the options combined
+ */
+size_t ldns_edns_option_list_get_options_size(const ldns_edns_option_list *options_list);
+
+/**
+ * adds an EDNS option to the list of options at the specified index. Also
+ * returns the option that was previously at that index.
+ * \param[in] options_list the EDNS options_list to add to
+ * \param[in] option the EDNS option to add to the list
+ * \param[in] index the index in the list where to set the option
+ * \return the EDNS option previously located at the index
+ */
+ldns_edns_option *ldns_edns_option_list_set_option(ldns_edns_option_list *options_list,
+ ldns_edns_option *option, size_t index);
+
+/**
+ * adds an EDNS option at the end of the list of options.
+ * \param[in] options_list the EDNS options_list to add to
+ * \param[in] option the (non-NULL) EDNS option to add to the list
+ * \return true on success and false of failure
+ */
+bool ldns_edns_option_list_push(ldns_edns_option_list *options_list,
+ ldns_edns_option *option);
+
+/**
+ * removes and returns the EDNS option at the end of the list of options.
+ * \param[in] options_list the EDNS options_list to add to
+ * \return the EDNS option at the end of the list, or NULL on failure
+ */
+ldns_edns_option* ldns_edns_option_list_pop(ldns_edns_option_list *options_list);
+
+/**
+ * serializes all the EDNS options into a single wireformat buffer
+ * \param[in] option_list the EDNS options_list to combine into one wireformat
+ * \return the filled buffer or NULL on failure
+ */
+ldns_buffer *ldns_edns_option_list2wireformat_buffer(const ldns_edns_option_list *option_list);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LDNS_EDNS_H */
diff --git a/ldns/error.h b/ldns/error.h
index 15f49a28e153..2429b7703dfa 100644
--- a/ldns/error.h
+++ b/ldns/error.h
@@ -129,7 +129,19 @@ enum ldns_enum_status {
LDNS_STATUS_RDATA_OVERFLOW,
LDNS_STATUS_SYNTAX_SUPERFLUOUS_TEXT_ERR,
LDNS_STATUS_NSEC3_DOMAINNAME_OVERFLOW,
- LDNS_STATUS_DANE_NEED_OPENSSL_GE_1_1_FOR_DANE_TA
+ LDNS_STATUS_DANE_NEED_OPENSSL_GE_1_1_FOR_DANE_TA,
+ LDNS_STATUS_ZONEMD_DOUBLE_OCCURRENCE,
+ LDNS_STATUS_ZONEMD_UNKNOWN_SCHEME,
+ LDNS_STATUS_ZONEMD_UNKNOWN_HASH,
+ LDNS_STATUS_ZONEMD_INVALID_SOA,
+ LDNS_STATUS_NO_ZONEMD,
+ LDNS_STATUS_NO_VALID_ZONEMD,
+ LDNS_STATUS_SYNTAX_SVCPARAM_KEY_ERR,
+ LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR,
+ LDNS_STATUS_RESERVED_SVCPARAM_KEY,
+ LDNS_STATUS_NO_SVCPARAM_VALUE_EXPECTED,
+ LDNS_STATUS_SVCPARAM_KEY_MORE_THAN_ONCE,
+ LDNS_STATUS_INVALID_SVCPARAM_VALUE
};
typedef enum ldns_enum_status ldns_status;
diff --git a/ldns/host2str.h b/ldns/host2str.h
index 325c562f5f49..79f5561a9451 100644
--- a/ldns/host2str.h
+++ b/ldns/host2str.h
@@ -65,6 +65,8 @@ extern "C" {
#define LDNS_FMT_ZEROIZE_RRSIGS (1 << 9)
#define LDNS_FMT_PAD_SOA_SERIAL (1 << 10)
#define LDNS_FMT_RFC3597 (1 << 11) /* yes */
+/** Prints only answer section of packets and only rdata of RRs **/
+#define LDNS_FMT_SHORT (1 << 12)
#define LDNS_FMT_FLAGS_WITH_DATA 2
@@ -76,11 +78,11 @@ extern "C" {
/**
* Output format specifier
*
- * Determines how Packets, Resource Records and Resource record data fiels are
+ * Determines how Packets, Resource Records and Resource record data field are
* formatted when printing or converting to string.
* Currently it is only used to specify what aspects of a Resource Record are
* annotated in the comment section of the textual representation the record.
- * This is speciefed with flags and potential exra data (such as for example
+ * This is specified with flags and potential extra data (such as for example
* a lookup map of hashes to real names for annotation NSEC3 records).
*/
struct ldns_struct_output_format
@@ -110,7 +112,7 @@ typedef struct ldns_struct_output_format_storage ldns_output_format_storage;
*/
extern const ldns_output_format *ldns_output_format_nocomments;
/**
- * Standard output format record that annotated only DNSKEY RR's with commenti
+ * Standard output format record that annotated only DNSKEY RR's with comment
* text.
*/
extern const ldns_output_format *ldns_output_format_onlykeyids;
@@ -514,6 +516,17 @@ ldns_status ldns_rr2buffer_str_fmt(ldns_buffer *output,
ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
/**
+ * Converts the list of EDNS options to presentation
+ * format (as char *) and appends it to the given buffer
+ *
+ * \param[in] output pointer to the buffer to append the data to
+ * \param[in] edns_list the list of EDNS options
+ * \return status
+ */
+ldns_status ldns_edns_option_list2buffer_str(ldns_buffer *output,
+ ldns_edns_option_list* edns_list);
+
+/**
* Converts the data in the DNS packet to presentation
* format (as char *) and appends it to the given buffer
*
@@ -636,6 +649,25 @@ ldns_status ldns_rdf2buffer_str_long_str(ldns_buffer *output,
ldns_status ldns_rdf2buffer_str_hip(ldns_buffer *output,
const ldns_rdf *rdf);
+/**
+ * Converts an LDNS_RDF_TYPE_AMTRELAY rdata element to presentation format for
+ * the precedence, D-bit, type and relay and adds it to the output buffer
+ * \param[in] *rdf The rdata to convert
+ * \param[in] *output The buffer to add the data to
+ * \return LDNS_STATUS_OK on success, and error status on failure
+ */
+ldns_status ldns_rdf2buffer_str_amtrelay(ldns_buffer *output,
+ const ldns_rdf *rdf);
+
+/**
+ * Converts an LDNS_RDF_TYPE_SVCPARAMS rdata element to presentation format.
+ * \param[in] *rdf The rdata to convert
+ * \param[in] *output The buffer to add the data to
+ * \return LDNS_STATUS_OK on success, and error status on failure
+ */
+ldns_status ldns_rdf2buffer_str_svcparams(ldns_buffer *output,
+ const ldns_rdf *rdf);
+
/**
* Converts the data in the rdata field to presentation format and
* returns that as a char *.
diff --git a/ldns/host2wire.h b/ldns/host2wire.h
index 94693cda3666..4378f3366ff3 100644
--- a/ldns/host2wire.h
+++ b/ldns/host2wire.h
@@ -130,7 +130,7 @@ ldns_status ldns_rrsig2buffer_wire(ldns_buffer *output, const ldns_rr *sigrr);
* 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
- * calcalution from the key and maybe elsewhere.
+ * calculation from the key and maybe elsewhere.
*
* \param[out] *output buffer where to put the result
* \param[in] *rr rr to operate on
@@ -147,6 +147,15 @@ ldns_status ldns_rr_rdata2buffer_wire(ldns_buffer *output, const ldns_rr *rr);
ldns_status ldns_pkt2buffer_wire(ldns_buffer *output, const ldns_pkt *pkt);
/**
+ * Copies the packet data to the buffer in wire format
+ * \param[out] *output buffer to append the result to
+ * \param[in] *pkt packet to convert
+ * \param[out] *compression_data data structure holding state for compression
+ * \return ldns_status
+ */
+ldns_status ldns_pkt2buffer_wire_compress(ldns_buffer *output, const ldns_pkt *pkt, ldns_rbtree_t *compression_data);
+
+/**
* Copies the rr_list data to the buffer in wire format
* \param[out] *output buffer to append the result to
* \param[in] *rrlist rr_list to to convert
@@ -187,6 +196,10 @@ ldns_status ldns_rr2wire(uint8_t **dest, const ldns_rr *rr, int section, size_t
* 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)
+ *
+ * \param[out] dest pointer to the array of bytes to be created
+ * \param[in] p the packet to convert
+ * \param[out] size the size of the converted result
*/
ldns_status ldns_pkt2wire(uint8_t **dest, const ldns_pkt *p, size_t *size);
diff --git a/ldns/keys.h b/ldns/keys.h
index df4bb22b2650..847825e533ff 100644
--- a/ldns/keys.h
+++ b/ldns/keys.h
@@ -55,16 +55,8 @@ enum ldns_enum_algorithm
LDNS_ECC_GOST = 12, /* RFC 5933 */
LDNS_ECDSAP256SHA256 = 13, /* RFC 6605 */
LDNS_ECDSAP384SHA384 = 14, /* RFC 6605 */
-#ifdef USE_ED25519
- /* this ifdef is internal to ldns, because we do not want to export
- * the symbol. Users can define it if they want access,
- * the feature is not fully implemented at this time and openssl
- * does not support it fully either (also for ED448). */
- LDNS_ED25519 = 15, /* draft-ietf-curdle-dnskey-ed25519 */
-#endif
-#ifdef USE_ED448
- LDNS_ED448 = 16, /* draft-ietf-curdle-dnskey-ed448 */
-#endif
+ LDNS_ED25519 = 15, /* RFC 8080 */
+ LDNS_ED448 = 16, /* RFC 8080 */
LDNS_INDIRECT = 252,
LDNS_PRIVATEDNS = 253,
LDNS_PRIVATEOID = 254
@@ -90,20 +82,24 @@ enum ldns_enum_signing_algorithm
{
LDNS_SIGN_RSAMD5 = LDNS_RSAMD5,
LDNS_SIGN_RSASHA1 = LDNS_RSASHA1,
+#if LDNS_BUILD_CONFIG_USE_DSA
LDNS_SIGN_DSA = LDNS_DSA,
+#endif /* LDNS_BUILD_CONFIG_USE_DSA */
LDNS_SIGN_RSASHA1_NSEC3 = LDNS_RSASHA1_NSEC3,
LDNS_SIGN_RSASHA256 = LDNS_RSASHA256,
LDNS_SIGN_RSASHA512 = LDNS_RSASHA512,
+#if LDNS_BUILD_CONFIG_USE_DSA
LDNS_SIGN_DSA_NSEC3 = LDNS_DSA_NSEC3,
+#endif /* LDNS_BUILD_CONFIG_USE_DSA */
LDNS_SIGN_ECC_GOST = LDNS_ECC_GOST,
LDNS_SIGN_ECDSAP256SHA256 = LDNS_ECDSAP256SHA256,
LDNS_SIGN_ECDSAP384SHA384 = LDNS_ECDSAP384SHA384,
-#ifdef USE_ED25519
+#if LDNS_BUILD_CONFIG_USE_ED25519
LDNS_SIGN_ED25519 = LDNS_ED25519,
-#endif
-#ifdef USE_ED448
+#endif /* LDNS_BUILD_CONFIG_USE_ED25519 */
+#if LDNS_BUILD_CONFIG_USE_ED448
LDNS_SIGN_ED448 = LDNS_ED448,
-#endif
+#endif /* LDNS_BUILD_CONFIG_USE_ED448 */
LDNS_SIGN_HMACMD5 = 157, /* not official! This type is for TSIG, not DNSSEC */
LDNS_SIGN_HMACSHA1 = 158, /* not official! This type is for TSIG, not DNSSEC */
LDNS_SIGN_HMACSHA256 = 159, /* ditto */
@@ -231,8 +227,14 @@ ldns_status ldns_key_new_frm_fp_l(ldns_key **k, FILE *fp, int *line_nr);
/**
* Read the key with the given id from the given engine and store it
* in the given ldns_key structure. The algorithm type is set
+ *
+ * \param[out] key the new ldns_key structure
+ * \param[in] e the engine from which to read the key
+ * \param[in] key_id the id of the key with which to lookup the key in the engine
+ * \param[in] a the algorithm to set for this key
+ * \return an error or LDNS_STATUS_OK
*/
-ldns_status ldns_key_new_frm_engine(ldns_key **key, ENGINE *e, char *key_id, ldns_algorithm);
+ldns_status ldns_key_new_frm_engine(ldns_key **key, ENGINE *e, char *key_id, ldns_algorithm a);
/**
@@ -242,9 +244,7 @@ ldns_status ldns_key_new_frm_engine(ldns_key **key, ENGINE *e, char *key_id, ldn
* \return NULL on failure otherwise a RSA structure
*/
RSA *ldns_key_new_frm_fp_rsa(FILE *fp);
-#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
-#if LDNS_BUILD_CONFIG_HAVE_SSL
/**
* frm_fp helper function. This function parses the
* remainder of the (RSA) priv. key file generated from bind9
@@ -253,9 +253,9 @@ RSA *ldns_key_new_frm_fp_rsa(FILE *fp);
* \return NULL on failure otherwise a RSA structure
*/
RSA *ldns_key_new_frm_fp_rsa_l(FILE *fp, int *line_nr);
-#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
-#if LDNS_BUILD_CONFIG_HAVE_SSL
+
+# if LDNS_BUILD_CONFIG_USE_DSA
/**
* frm_fp helper function. This function parses the
* remainder of the (DSA) priv. key file
@@ -263,9 +263,7 @@ RSA *ldns_key_new_frm_fp_rsa_l(FILE *fp, int *line_nr);
* \return NULL on failure otherwise a RSA structure
*/
DSA *ldns_key_new_frm_fp_dsa(FILE *fp);
-#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
-#if LDNS_BUILD_CONFIG_HAVE_SSL
/**
* frm_fp helper function. This function parses the
* remainder of the (DSA) priv. key file
@@ -274,9 +272,8 @@ DSA *ldns_key_new_frm_fp_dsa(FILE *fp);
* \return NULL on failure otherwise a RSA structure
*/
DSA *ldns_key_new_frm_fp_dsa_l(FILE *fp, int *line_nr);
-#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
+# endif /* LDNS_BUILD_CONFIG_USE_DSA */
-#if LDNS_BUILD_CONFIG_HAVE_SSL
/**
* frm_fp helper function. This function parses the
* remainder of the (HMAC-MD5) key file
@@ -286,9 +283,7 @@ DSA *ldns_key_new_frm_fp_dsa_l(FILE *fp, int *line_nr);
* \return NULL on failure otherwise a newly allocated char buffer
*/
unsigned char *ldns_key_new_frm_fp_hmac(FILE *fp, size_t *hmac_size);
-#endif
-#if LDNS_BUILD_CONFIG_HAVE_SSL
/**
* frm_fp helper function. This function parses the
* remainder of the (HMAC-MD5) key file
@@ -301,13 +296,14 @@ unsigned char *ldns_key_new_frm_fp_hmac(FILE *fp, size_t *hmac_size);
unsigned char *ldns_key_new_frm_fp_hmac_l(FILE *fp, int *line_nr, size_t *hmac_size);
#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
-/* acces write functions */
+/* access write functions */
/**
* Set the key's algorithm
* \param[in] k the key
* \param[in] l the algorithm
*/
void ldns_key_set_algorithm(ldns_key *k, ldns_signing_algorithm l);
+
#if LDNS_BUILD_CONFIG_HAVE_SSL
/**
* Set the key's evp key
@@ -324,6 +320,7 @@ void ldns_key_set_evp_key(ldns_key *k, EVP_PKEY *e);
*/
void ldns_key_set_rsa_key(ldns_key *k, RSA *r);
+# if LDNS_BUILD_CONFIG_USE_DSA
/**
* Set the key's dsa data
* The dsa data should be freed by the user.
@@ -331,6 +328,7 @@ void ldns_key_set_rsa_key(ldns_key *k, RSA *r);
* \param[in] d the dsa data
*/
void ldns_key_set_dsa_key(ldns_key *k, DSA *d);
+# endif /* LDNS_BUILD_CONFIG_USE_DSA */
/**
* Assign the key's rsa data
@@ -340,6 +338,7 @@ void ldns_key_set_dsa_key(ldns_key *k, DSA *d);
*/
void ldns_key_assign_rsa_key(ldns_key *k, RSA *r);
+# if LDNS_BUILD_CONFIG_USE_DSA
/**
* Assign the key's dsa data
* The dsa data will be freed automatically when the key is freed.
@@ -347,6 +346,7 @@ void ldns_key_assign_rsa_key(ldns_key *k, RSA *r);
* \param[in] d the dsa data
*/
void ldns_key_assign_dsa_key(ldns_key *k, DSA *d);
+# endif /* LDNS_BUILD_CONFIG_USE_DSA */
/**
* Get the PKEY id for GOST, loads GOST into openssl as a side effect.
@@ -423,7 +423,7 @@ void ldns_key_set_flags(ldns_key *k, uint16_t flags);
/**
* Set the keylist's key count to count
* \param[in] key the key
- * \param[in] count the cuont
+ * \param[in] count the count
*/
void ldns_key_list_set_key_count(ldns_key_list *key, size_t count);
@@ -463,13 +463,13 @@ RSA *ldns_key_rsa_key(const ldns_key *k);
* \return the RSA * structure in the key
*/
EVP_PKEY *ldns_key_evp_key(const ldns_key *k);
-#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
+# if LDNS_BUILD_CONFIG_USE_DSA
/**
* returns the (openssl) DSA struct contained in the key
*/
-#if LDNS_BUILD_CONFIG_HAVE_SSL
DSA *ldns_key_dsa_key(const ldns_key *k);
+# endif /* LDNS_BUILD_CONFIG_USE_DSA */
#endif /* LDNS_BUILD_CONFIG_HAVE_SSL */
/**
@@ -523,7 +523,7 @@ uint32_t ldns_key_inception(const ldns_key *k);
/**
* return the key's expiration date
* \param[in] k the key
- * \return the experiration date
+ * \return the expiration date
*/
uint32_t ldns_key_expiration(const ldns_key *k);
/**
diff --git a/ldns/ldns.h b/ldns/ldns.h
index 60663ef95c7f..9b0bc066b0fc 100644
--- a/ldns/ldns.h
+++ b/ldns/ldns.h
@@ -101,6 +101,7 @@ Or you can just use the menu above to browse through the API docs.
#include <ldns/dnssec_verify.h>
#include <ldns/dnssec_sign.h>
#include <ldns/duration.h>
+#include <ldns/edns.h>
#include <ldns/error.h>
#include <ldns/higher.h>
#include <ldns/host2str.h>
diff --git a/ldns/net.h.in b/ldns/net.h.in
index 9faf3a7dead5..8503f1c93391 100644
--- a/ldns/net.h.in
+++ b/ldns/net.h.in
@@ -30,7 +30,7 @@ extern "C" {
*/
/**
- * Sends a buffer to an ip using udp and return the respons as a ldns_pkt
+ * Sends a buffer to an ip using udp and return the response as a ldns_pkt
* \param[in] qbin the ldns_buffer to be send
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
@@ -48,7 +48,20 @@ ldns_status ldns_udp_send(uint8_t **result, ldns_buffer *qbin, const struct sock
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
* \param[in] timeout *unused*, was the timeout value for the network
- * \return the socket used
+ * \return the socket used or -1 on failure
+ */
+int ldns_udp_bgsend2(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
+
+/**
+ * Send an udp query and don't wait for an answer but return
+ * the socket
+ * This function has the flaw that it returns 0 on failure, but 0 could be a
+ * valid socket. Please use ldns_udp_bgsend2 instead of this function.
+ * \param[in] qbin the ldns_buffer to be send
+ * \param[in] to the ip addr to send to
+ * \param[in] tolen length of the ip addr
+ * \param[in] timeout *unused*, was the timeout value for the network
+ * \return the socket used or 0 on failure
*/
int ldns_udp_bgsend(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
@@ -59,12 +72,25 @@ int ldns_udp_bgsend(ldns_buffer *qbin, const struct sockaddr_storage *to, sockle
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
* \param[in] timeout the timeout value for the connect attempt
- * \return the socket used
+ * \return the socket used or -1 on failure
+ */
+int ldns_tcp_bgsend2(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
+
+/**
+ * Send an tcp query and don't wait for an answer but return
+ * the socket
+ * This function has the flaw that it returns 0 on failure, but 0 could be a
+ * valid socket. Please use ldns_tcp_bgsend2 instead of this function.
+ * \param[in] qbin the ldns_buffer to be send
+ * \param[in] to the ip addr to send to
+ * \param[in] tolen length of the ip addr
+ * \param[in] timeout the timeout value for the connect attempt
+ * \return the socket used or 0 on failure
*/
int ldns_tcp_bgsend(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
/**
- * Sends a buffer to an ip using tcp and return the respons as a ldns_pkt
+ * Sends a buffer to an ip using tcp and return the response as a ldns_pkt
* \param[in] qbin the ldns_buffer to be send
* \param[in] qbin the ldns_buffer to be send
* \param[in] to the ip addr to send to
@@ -104,7 +130,18 @@ ldns_status ldns_send_buffer(ldns_pkt **pkt, ldns_resolver *r, ldns_buffer *qb,
* \param[in] to ip and family
* \param[in] tolen length of to
* \param[in] timeout timeout for the connect attempt
- * \return a socket descriptor
+ * \return a socket descriptor or -1 on failure
+ */
+int ldns_tcp_connect2(const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
+
+/**
+ * Create a tcp socket to the specified address
+ * This function has the flaw that it returns 0 on failure, but 0 could be a
+ * valid socket. Please use ldns_tcp_connect2 instead of this function.
+ * \param[in] to ip and family
+ * \param[in] tolen length of to
+ * \param[in] timeout timeout for the connect attempt
+ * \return a socket descriptor or 0 on failure
*/
int ldns_tcp_connect(const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
@@ -112,7 +149,17 @@ int ldns_tcp_connect(const struct sockaddr_storage *to, socklen_t tolen, struct
* Create a udp socket to the specified address
* \param[in] to ip and family
* \param[in] timeout *unused*, was timeout for the socket
- * \return a socket descriptor
+ * \return a socket descriptor or -1 on failure
+ */
+int ldns_udp_connect2(const struct sockaddr_storage *to, struct timeval timeout);
+
+/**
+ * Create a udp socket to the specified address
+ * This function has the flaw that it returns 0 on failure, but 0 could be a
+ * valid socket. Please use ldns_udp_connect2 instead of this function.
+ * \param[in] to ip and family
+ * \param[in] timeout *unused*, was timeout for the socket
+ * \return a socket descriptor or 0 on failure
*/
int ldns_udp_connect(const struct sockaddr_storage *to, struct timeval timeout);
@@ -186,7 +233,7 @@ struct sockaddr_storage * ldns_rdf2native_sockaddr_storage(const ldns_rdf *rd, u
* returns an rdf with the sockaddr info. works for ip4 and ip6
* \param[in] sock the struct sockaddr_storage to convert
* \param[in] port what port was used. When NULL this is not set
- * \return ldns_rdf* wth the address
+ * \return ldns_rdf* with the address
*/
ldns_rdf * ldns_sockaddr_storage2rdf(const struct sockaddr_storage *sock, uint16_t *port);
@@ -194,7 +241,7 @@ ldns_rdf * ldns_sockaddr_storage2rdf(const struct sockaddr_storage *sock, uint16
* Prepares the resolver for an axfr query
* The query is sent and the answers can be read with ldns_axfr_next
* \param[in] resolver the resolver to use
- * \param[in] domain the domain to exfr
+ * \param[in] domain the domain to axfr
* \param[in] c the class to use
* \return ldns_status the status of the transfer
*/
diff --git a/ldns/packet.h b/ldns/packet.h
index e29941936638..2c60609fc07a 100644
--- a/ldns/packet.h
+++ b/ldns/packet.h
@@ -35,6 +35,7 @@
#include <ldns/error.h>
#include <ldns/common.h>
#include <ldns/rr.h>
+#include <ldns/edns.h>
#include <sys/time.h>
#ifdef __cplusplus
@@ -251,12 +252,14 @@ struct ldns_struct_pkt
uint8_t _edns_extended_rcode;
/** EDNS Version */
uint8_t _edns_version;
- /* OPT pseudo-RR presence flag */
- uint8_t _edns_present;
+ /* OPT pseudo-RR presence flag */
+ uint8_t _edns_present;
/** Reserved EDNS data bits */
uint16_t _edns_z;
/** Arbitrary EDNS rdata */
ldns_rdf *_edns_data;
+ /** Structed EDNS data */
+ ldns_edns_option_list *_edns_list;
/** Question section */
ldns_rr_list *_question;
/** Answer section */
@@ -355,9 +358,9 @@ bool ldns_pkt_ad(const ldns_pkt *p);
*/
ldns_pkt_opcode ldns_pkt_get_opcode(const ldns_pkt *p);
/**
- * Return the packet's respons code
+ * Return the packet's response code
* \param[in] p the packet
- * \return the respons code
+ * \return the response code
*/
ldns_pkt_rcode ldns_pkt_get_rcode(const ldns_pkt *p);
/**
@@ -586,7 +589,7 @@ void ldns_pkt_set_ad(ldns_pkt *p, bool b);
*/
void ldns_pkt_set_opcode(ldns_pkt *p, ldns_pkt_opcode c);
/**
- * Set the packet's respons code
+ * Set the packet's response code
* \param[in] p the packet
* \param[in] c the rcode
*/
@@ -687,7 +690,7 @@ uint8_t ldns_pkt_edns_version(const ldns_pkt *packet);
*/
uint16_t ldns_pkt_edns_z(const ldns_pkt *packet);
/**
- * return the packet's edns data
+ * return the packet's EDNS data
* \param[in] packet the packet
* \return the data
*/
@@ -707,6 +710,18 @@ bool ldns_pkt_edns_do(const ldns_pkt *packet);
void ldns_pkt_set_edns_do(ldns_pkt *packet, bool value);
/**
+ * return the packet's EDNS header bits that are unassigned.
+ */
+uint16_t ldns_pkt_edns_unassigned(const ldns_pkt *packet);
+
+/**
+ * Set the packet's EDNS header bits that are unassigned.
+ * \param[in] packet the packet
+ * \param[in] value the value
+ */
+void ldns_pkt_set_edns_unassigned(ldns_pkt *packet, uint16_t value);
+
+/**
* 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
@@ -718,6 +733,16 @@ void ldns_pkt_set_edns_do(ldns_pkt *packet, bool value);
bool ldns_pkt_edns(const ldns_pkt *packet);
/**
+ * Returns a list of structured EDNS options. The list will be automatically
+ * freed when the packet is freed. The option list can be manipulated and
+ * will be used when converting the packet to wireformat with ldns_pkt2wire.
+ *
+ * \param[in] packet the packet which contains the EDNS data
+ * \return the list of EDNS options
+ */
+ldns_edns_option_list* ldns_pkt_edns_get_option_list(ldns_pkt *packet);
+
+/**
* Set the packet's edns udp size
* \param[in] packet the packet
* \param[in] s the size
@@ -742,13 +767,21 @@ void ldns_pkt_set_edns_version(ldns_pkt *packet, uint8_t v);
*/
void ldns_pkt_set_edns_z(ldns_pkt *packet, uint16_t z);
/**
- * Set the packet's edns data
+ * Set the packet's EDNS data
* \param[in] packet the packet
* \param[in] data the data
*/
void ldns_pkt_set_edns_data(ldns_pkt *packet, ldns_rdf *data);
/**
+ * Set the packet's structured EDNS data. Once an edns_option_list is set
+ * (or get), the option list will be used for converting into wireformat.
+ * \param[in] packet the packet
+ * \param[in] list the options list that will create the data
+ */
+void ldns_pkt_set_edns_option_list(ldns_pkt *packet, ldns_edns_option_list *list);
+
+/**
* allocates and initializes a ldns_pkt structure.
* \return pointer to the new packet
*/
@@ -837,7 +870,7 @@ void ldns_pkt_set_answer(ldns_pkt *p, ldns_rr_list *rr);
void ldns_pkt_set_question(ldns_pkt *p, ldns_rr_list *rr);
/**
- * directly set the auhority section
+ * directly set the authority section
* \param[in] p packet to operate on
* \param[in] rr rrlist to set
*/
diff --git a/ldns/parse.h b/ldns/parse.h
index 0e9034c3414e..ba7edf5679d8 100644
--- a/ldns/parse.h
+++ b/ldns/parse.h
@@ -69,6 +69,32 @@ ssize_t ldns_fget_token(FILE *f, char *token, const char *delim, size_t limit);
*/
ssize_t ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr);
+/**
+ * returns a token/char from the stream f.
+ * This function deals with ( and ) in the stream,
+ * and ignores when it finds them.
+ * \param[in] *f the file to read from
+ * \param[out] **token this should be a reference to a string buffer in which
+ * the token is put. A new buffer will be allocated when
+ * *token is NULL and fixed is false. If the buffer is too
+ * small to hold the token, the buffer is reallocated with
+ * double the size (of limit).
+ * If fixed is true, the string buffer may not be NULL
+ * and limit must be set to the buffer size. In that case
+ * no reallocations will be done.
+ * \param[in,out] *limit reference to the size of the token buffer. Will be
+ * reset to the new limit of the token buffer if the
+ * buffer is reallocated.
+ * \param [in] fixed If fixed is false, the token buffer is allowed to grow
+ * when needed (by way of reallocation). If true, the token
+ * buffer will not be resized.
+ * \param[in] *delim chars at which the parsing should stop
+ * \param[in] line_nr pointer to an integer containing the current line number (for debugging purposes)
+ * \return LDNS_STATUS_OK on success, LDNS_STATUS_SYNTAX_EMPTY when no token
+ * was read and an error otherwise.
+ */
+ldns_status ldns_fget_token_l_st(FILE *f, char **token, size_t *limit, bool fixed, const char *delim, int *line_nr);
+
/**
* returns a token/char from the buffer b.
* This function deals with ( and ) in the buffer,
@@ -86,9 +112,9 @@ ssize_t ldns_bget_token(ldns_buffer *b, char *token, const char *delim, size_t l
* after the keyword + k_del until we hit d_del
* \param[in] f file pointer to read from
* \param[in] keyword keyword to look for
- * \param[in] k_del keyword delimeter
+ * \param[in] k_del keyword delimiter
* \param[out] data the data found
- * \param[in] d_del the data delimeter
+ * \param[in] d_del the data delimiter
* \param[in] data_limit maximum size the the data buffer
* \return the number of character read
*/
@@ -99,9 +125,9 @@ ssize_t ldns_fget_keyword_data(FILE *f, const char *keyword, const char *k_del,
* after the keyword + k_del until we hit d_del
* \param[in] f file pointer to read from
* \param[in] keyword keyword to look for
- * \param[in] k_del keyword delimeter
+ * \param[in] k_del keyword delimiter
* \param[out] data the data found
- * \param[in] d_del the data delimeter
+ * \param[in] d_del the data delimiter
* \param[in] data_limit maximum size the the data buffer
* \param[in] line_nr pointer to an integer containing the current line number (for
debugging purposes)
@@ -114,9 +140,9 @@ ssize_t ldns_fget_keyword_data_l(FILE *f, const char *keyword, const char *k_del
* after the keyword + k_del until we hit d_del
* \param[in] b buffer pointer to read from
* \param[in] keyword keyword to look for
- * \param[in] k_del keyword delimeter
+ * \param[in] k_del keyword delimiter
* \param[out] data the data found
- * \param[in] d_del the data delimeter
+ * \param[in] d_del the data delimiter
* \param[in] data_limit maximum size the the data buffer
* \return the number of character read
*/
diff --git a/ldns/radix.h b/ldns/radix.h
index ec70565a3cab..4cb42b48ba9d 100644
--- a/ldns/radix.h
+++ b/ldns/radix.h
@@ -154,7 +154,7 @@ ldns_radix_node_t* ldns_radix_search(ldns_radix_t* tree, const uint8_t* key,
* @param tree: tree to insert to.
* @param key: key.
* @param len: length of key.
- * @param result: the radix node with the exact or closest match. NULL if
+ * @param[out] result: the radix node with the exact or closest match. NULL if
* the key is smaller than the smallest key in the tree.
* @return 1 if exact match, 0 otherwise.
*
@@ -198,7 +198,7 @@ ldns_radix_node_t* ldns_radix_prev(ldns_radix_node_t* node);
* Split radix tree intwo.
* @param tree1: one tree.
* @param num: number of elements to split off.
- * @param tree2: another tree.
+ * @param[out] tree2: another tree.
* @return: status.
*
*/
diff --git a/ldns/rbtree.h b/ldns/rbtree.h
index 0747a8e5b87b..4cfaf382978a 100644
--- a/ldns/rbtree.h
+++ b/ldns/rbtree.h
@@ -151,7 +151,7 @@ ldns_rbnode_t *ldns_rbtree_search(ldns_rbtree_t *rbtree, const void *key);
* Find, but match does not have to be exact.
* @param rbtree: tree to find in.
* @param key: key to find position of.
- * @param result: set to the exact node if present, otherwise to element that
+ * @param[out] result: set to the exact node if present, otherwise to element that
* precedes the position of key in the tree. NULL if no smaller element.
* @return: true if exact match in result. Else result points to <= element,
* or NULL if key is smaller than the smallest key.
diff --git a/ldns/rdata.h b/ldns/rdata.h
index 981dd94a0484..c8a0396cfd15 100644
--- a/ldns/rdata.h
+++ b/ldns/rdata.h
@@ -139,6 +139,12 @@ enum ldns_enum_rdf_type
LDNS_RDF_TYPE_SELECTOR,
LDNS_RDF_TYPE_MATCHING_TYPE,
+ /** draft-ietf-mboned-driad-amt-discovery **/
+ LDNS_RDF_TYPE_AMTRELAY,
+
+ /** draft-ietf-dnsop-svcb-https **/
+ LDNS_RDF_TYPE_SVCPARAMS,
+
/* Aliases */
LDNS_RDF_TYPE_BITMAP = LDNS_RDF_TYPE_NSEC
};
@@ -162,7 +168,23 @@ enum ldns_enum_cert_algorithm
};
typedef enum ldns_enum_cert_algorithm ldns_cert_algorithm;
-
+/**
+ * keys types in SVCPARAMS rdata fields
+ */
+enum ldns_enum_svcparam_key
+{
+ LDNS_SVCPARAM_KEY_MANDATORY = 0,
+ LDNS_SVCPARAM_KEY_ALPN = 1,
+ LDNS_SVCPARAM_KEY_NO_DEFAULT_ALPN = 2,
+ LDNS_SVCPARAM_KEY_PORT = 3,
+ LDNS_SVCPARAM_KEY_IPV4HINT = 4,
+ LDNS_SVCPARAM_KEY_ECH = 5,
+ LDNS_SVCPARAM_KEY_IPV6HINT = 6,
+ LDNS_SVCPARAM_KEY_DOHPATH = 7,
+ LDNS_SVCPARAM_KEY_LAST_KEY = 7,
+ LDNS_SVCPARAM_KEY_RESERVED = 65535
+};
+typedef enum ldns_enum_svcparam_key ldns_svcparam_key;
/**
* Resource record data field.
@@ -240,7 +262,7 @@ uint8_t *ldns_rdf_data(const ldns_rdf *rd);
/**
* allocates a new rdf structure and fills it.
* This function DOES NOT copy the contents from
- * the buffer, unlinke ldns_rdf_new_frm_data()
+ * the buffer, unlike ldns_rdf_new_frm_data()
* \param[in] type type of the rdf
* \param[in] size size of the buffer
* \param[in] data pointer to the buffer to be copied
@@ -251,7 +273,7 @@ ldns_rdf *ldns_rdf_new(ldns_rdf_type type, size_t size, void *data);
/**
* allocates a new rdf structure and fills it.
* This function _does_ copy the contents from
- * the buffer, unlinke ldns_rdf_new()
+ * the buffer, unlike ldns_rdf_new()
* \param[in] type type of the rdf
* \param[in] size size of the buffer
* \param[in] data pointer to the buffer to be copied
diff --git a/ldns/resolver.h b/ldns/resolver.h
index 84128dfecfba..e8459db7a3e0 100644
--- a/ldns/resolver.h
+++ b/ldns/resolver.h
@@ -250,7 +250,7 @@ bool ldns_resolver_dnssec_cd(const ldns_resolver *r);
/**
* Get the resolver's DNSSEC anchors
* \param[in] r the resolver
- * \return an rr_list containg trusted DNSSEC anchors
+ * \return an rr_list containing trusted DNSSEC anchors
*/
ldns_rr_list * ldns_resolver_dnssec_anchors(const ldns_resolver *r);
/**
@@ -730,7 +730,7 @@ ldns_status ldns_resolver_new_frm_fp_l(ldns_resolver **r, FILE *fp, int *line_nr
ldns_status ldns_resolver_new_frm_file(ldns_resolver **r, const char *filename);
/**
- * Frees the allocated space for this resolver. Only frees the resolver pionter! You should probably be using _deep_free.
+ * Frees the allocated space for this resolver. Only frees the resolver pointer! You should probably be using _deep_free.
* \param res resolver to free
*/
void ldns_resolver_free(ldns_resolver *res);
@@ -766,7 +766,7 @@ bool ldns_axfr_complete(const ldns_resolver *resolver);
/**
* Returns a pointer to the last ldns_pkt that was sent by the server in the AXFR transfer
- * uasable for instance to get the error code on failure
+ * usable for instance to get the error code on failure
* \param[in] res the resolver that was used in the axfr transfer
* \return ldns_pkt the last packet sent
*/
diff --git a/ldns/rr.h b/ldns/rr.h
index 5c53f8293f8f..44d54121f4d5 100644
--- a/ldns/rr.h
+++ b/ldns/rr.h
@@ -36,9 +36,6 @@ extern "C" {
/** The bytes TTL, CLASS and length use up in an rr */
#define LDNS_RR_OVERHEAD 10
-/* The first fields are contiguous and can be referenced instantly */
-#define LDNS_RDATA_FIELD_DESCRIPTORS_COMMON 259
-
/**
@@ -159,7 +156,7 @@ enum ldns_enum_rr_type
LDNS_RR_TYPE_DNAME = 39,
/** dnsind-kitchen-sink-02.txt */
LDNS_RR_TYPE_SINK = 40,
- /** Pseudo OPT record... */
+ /** OPT record RFC 6891 */
LDNS_RR_TYPE_OPT = 41,
/** RFC3123 */
LDNS_RR_TYPE_APL = 42,
@@ -180,7 +177,7 @@ enum ldns_enum_rr_type
LDNS_RR_TYPE_NSEC3PARAM = 51, /* RFC 5155 */
LDNS_RR_TYPE_NSEC3PARAMS = 51,
LDNS_RR_TYPE_TLSA = 52, /* RFC 6698 */
- LDNS_RR_TYPE_SMIMEA = 53, /* draft-ietf-dane-smime */
+ LDNS_RR_TYPE_SMIMEA = 53, /* RFC 8162 */
LDNS_RR_TYPE_HIP = 55, /* RFC 5205 */
@@ -194,6 +191,9 @@ enum ldns_enum_rr_type
LDNS_RR_TYPE_CDNSKEY = 60, /* RFC 7344 */
LDNS_RR_TYPE_OPENPGPKEY = 61, /* RFC 7929 */
LDNS_RR_TYPE_CSYNC = 62, /* RFC 7477 */
+ LDNS_RR_TYPE_ZONEMD = 63, /* draft-ietf-dnsop-dns-zone-digest */
+ LDNS_RR_TYPE_SVCB = 64, /* draft-ietf-dnsop-svcb-https */
+ LDNS_RR_TYPE_HTTPS = 65, /* draft-ietf-dnsop-svcb-https */
LDNS_RR_TYPE_SPF = 99, /* RFC 4408 */
@@ -223,6 +223,10 @@ enum ldns_enum_rr_type
LDNS_RR_TYPE_URI = 256, /* RFC 7553 */
LDNS_RR_TYPE_CAA = 257, /* RFC 6844 */
LDNS_RR_TYPE_AVC = 258, /* Cisco's DNS-AS RR, see www.dns-as.org */
+ LDNS_RR_TYPE_DOA = 259, /* draft-durand-doa-over-dns */
+
+ /** draft-ietf-mboned-driad-amt-discovery **/
+ LDNS_RR_TYPE_AMTRELAY = 260,
/** DNSSEC Trust Authorities */
LDNS_RR_TYPE_TA = 32768,
@@ -238,6 +242,9 @@ enum ldns_enum_rr_type
};
typedef enum ldns_enum_rr_type ldns_rr_type;
+/* The first fields are contiguous and can be referenced instantly */
+#define LDNS_RDATA_FIELD_DESCRIPTORS_COMMON (LDNS_RR_TYPE_AMTRELAY + 1)
+
/**
* Resource Record
*
@@ -520,7 +527,7 @@ void ldns_rr_set_class(ldns_rr *rr, ldns_rr_class rr_class);
* \param[in] *rr the rr to operate on
* \param[in] *f the rdf to set
* \param[in] position the position the set the rdf
- * \return the old value in the rr, NULL on failyre
+ * \return the old value in the rr, NULL on failure
*/
ldns_rdf* ldns_rr_set_rdf(ldns_rr *rr, const ldns_rdf *f, size_t position);
@@ -810,7 +817,7 @@ int ldns_rr_compare_wire(const ldns_buffer *rr1_buf, const ldns_buffer *rr2_buf)
bool ldns_rr_compare_ds(const ldns_rr *rr1, const ldns_rr *rr2);
/**
- * compares two rr listss.
+ * compares two rr lists.
* \param[in] rrl1 the first one
* \param[in] rrl2 the second one
* \return 0 if equal
diff --git a/ldns/rr_functions.h b/ldns/rr_functions.h
index 09a28dd7f879..5a84d40b1358 100644
--- a/ldns/rr_functions.h
+++ b/ldns/rr_functions.h
@@ -121,9 +121,9 @@ bool ldns_rr_rrsig_set_origttl(ldns_rr *r, ldns_rdf *f);
*/
ldns_rdf* ldns_rr_rrsig_expiration(const ldns_rr *r);
/**
- * sets the expireation date of a LDNS_RR_TYPE_RRSIG rr
+ * sets the expiration date of a LDNS_RR_TYPE_RRSIG rr
* \param[in] r the rr to use
- * \param[in] f the expireation date to set
+ * \param[in] f the expiration date to set
* \return true on success, false otherwise
*/
bool ldns_rr_rrsig_set_expiration(ldns_rr *r, ldns_rdf *f);
diff --git a/ldns/sha1.h b/ldns/sha1.h
index d5b1082e670f..bc9841120965 100644
--- a/ldns/sha1.h
+++ b/ldns/sha1.h
@@ -1,6 +1,13 @@
#ifndef LDNS_SHA1_H
#define LDNS_SHA1_H
+#include <stdint.h> /* uint32_t and friends */
+#include <stddef.h> /* size_t and NULL */
+
+#if LDNS_BUILD_CONFIG_HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -29,7 +36,7 @@ void ldns_sha1_final(unsigned char digest[LDNS_SHA1_DIGEST_LENGTH], ldns_sha1_ct
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha1(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha1(const unsigned char *data, unsigned int data_len, unsigned char *digest);
#ifdef __cplusplus
}
diff --git a/ldns/sha2.h b/ldns/sha2.h
index 238767af45f0..c3c1f1a09623 100644
--- a/ldns/sha2.h
+++ b/ldns/sha2.h
@@ -46,23 +46,16 @@
#ifndef __LDNS_SHA2_H__
#define __LDNS_SHA2_H__
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*
- * Import u_intXX_t size_t type definitions from system headers. You
- * may need to change this, or define these things yourself in this
- * file.
- */
-#include <sys/types.h>
+#include <stdint.h> /* uint32_t and friends */
+#include <stddef.h> /* size_t and NULL */
#if LDNS_BUILD_CONFIG_HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
-#include <inttypes.h>
-
-#endif /* LDNS_BUILD_CONFIG_HAVE_INTTYPES_H */
+#ifdef __cplusplus
+extern "C" {
+#endif
/*** SHA-256/384/512 Various Length Definitions ***********************/
@@ -116,7 +109,7 @@ void ldns_sha512_final(uint8_t[LDNS_SHA512_DIGEST_LENGTH], ldns_sha512_CTX*);
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha256(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha256(const unsigned char *data, unsigned int data_len, unsigned char *digest);
/**
* Convenience function to digest a fixed block of data at once.
@@ -128,7 +121,7 @@ unsigned char *ldns_sha256(unsigned char *data, unsigned int data_len, unsigned
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha384(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha384(const unsigned char *data, unsigned int data_len, unsigned char *digest);
/**
* Convenience function to digest a fixed block of data at once.
@@ -140,7 +133,7 @@ unsigned char *ldns_sha384(unsigned char *data, unsigned int data_len, unsigned
* available
* \return the SHA1 digest of the given data
*/
-unsigned char *ldns_sha512(unsigned char *data, unsigned int data_len, unsigned char *digest);
+unsigned char *ldns_sha512(const unsigned char *data, unsigned int data_len, unsigned char *digest);
#ifdef __cplusplus
}
diff --git a/ldns/str2host.h b/ldns/str2host.h
index d639970546ad..2892db0bfb1c 100644
--- a/ldns/str2host.h
+++ b/ldns/str2host.h
@@ -32,7 +32,7 @@ extern "C" {
/**
* convert a byte into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] bytestr the string to be converted
* \return ldns_status
*/
@@ -40,7 +40,7 @@ ldns_status ldns_str2rdf_int8(ldns_rdf **rd, const char *bytestr);
/**
* convert a string to a int16 in wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] shortstr the string to be converted
* \return ldns_status
*/
@@ -48,7 +48,7 @@ ldns_status ldns_str2rdf_int16(ldns_rdf **rd, const char *shortstr);
/**
* convert a strings into a 4 byte int in wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] longstr the string to be converted
* \return ldns_status
*/
@@ -56,21 +56,21 @@ ldns_status ldns_str2rdf_int32(ldns_rdf **rd, const char *longstr);
/**
* convert a time string to a time value in wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] time the string to be converted
* \return ldns_status
*/
ldns_status ldns_str2rdf_time(ldns_rdf **rd, const char *time);
/* convert string with NSEC3 salt to wireformat)
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* return ldns_status
*/
ldns_status ldns_str2rdf_nsec3_salt(ldns_rdf **rd, const char *nsec3_salt);
/* convert a time period (think TTL's) to wireformat)
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* return ldns_status
*/
@@ -78,7 +78,7 @@ ldns_status ldns_str2rdf_period(ldns_rdf **rd, const char *str);
/**
* convert str with an A record into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -86,7 +86,7 @@ ldns_status ldns_str2rdf_a(ldns_rdf **rd, const char *str);
/**
* convert the str with an AAAA record into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -94,7 +94,7 @@ ldns_status ldns_str2rdf_aaaa(ldns_rdf **rd, const char *str);
/**
* convert a string into wireformat (think txt record)
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted (NULL terminated)
* \return ldns_status
*/
@@ -102,7 +102,7 @@ ldns_status ldns_str2rdf_str(ldns_rdf **rd, const char *str);
/**
* convert str with the apl record into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -110,7 +110,7 @@ ldns_status ldns_str2rdf_apl(ldns_rdf **rd, const char *str);
/**
* convert the string with the b64 data into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -118,7 +118,7 @@ ldns_status ldns_str2rdf_b64(ldns_rdf **rd, const char *str);
/**
* convert the string with the b32 ext hex data into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -126,7 +126,7 @@ ldns_status ldns_str2rdf_b32_ext(ldns_rdf **rd, const char *str);
/**
* convert a hex value into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -134,7 +134,7 @@ ldns_status ldns_str2rdf_hex(ldns_rdf **rd, const char *str);
/**
* convert string with nsec into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -142,7 +142,7 @@ ldns_status ldns_str2rdf_nsec(ldns_rdf **rd, const char *str);
/**
* convert a rrtype into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -150,7 +150,7 @@ ldns_status ldns_str2rdf_type(ldns_rdf **rd, const char *str);
/**
* convert string with a classname into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -158,7 +158,7 @@ ldns_status ldns_str2rdf_class(ldns_rdf **rd, const char *str);
/**
* convert an certificate algorithm value into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -166,7 +166,7 @@ ldns_status ldns_str2rdf_cert_alg(ldns_rdf **rd, const char *str);
/**
* convert an algorithm value into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -174,7 +174,7 @@ ldns_status ldns_str2rdf_alg(ldns_rdf **rd, const char *str);
/**
* convert a tlsa certificate usage value into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -182,7 +182,7 @@ ldns_status ldns_str2rdf_certificate_usage(ldns_rdf **rd, const char *str);
/**
* convert a tlsa selector value into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -190,7 +190,7 @@ ldns_status ldns_str2rdf_selector(ldns_rdf **rd, const char *str);
/**
* convert a tlsa matching type value into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -198,7 +198,7 @@ ldns_status ldns_str2rdf_matching_type(ldns_rdf **rd, const char *str);
/**
* convert a string with a unknown RR into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -206,7 +206,7 @@ ldns_status ldns_str2rdf_unknown(ldns_rdf **rd, const char *str);
/**
* convert string with a protocol service into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -214,7 +214,7 @@ ldns_status ldns_str2rdf_service(ldns_rdf **rd, const char *str);
/**
* convert a string with a LOC RR into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -222,7 +222,7 @@ ldns_status ldns_str2rdf_loc(ldns_rdf **rd, const char *str);
/**
* convert string with a WKS RR into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -230,7 +230,7 @@ ldns_status ldns_str2rdf_wks(ldns_rdf **rd, const char *str);
/**
* convert a str with a NSAP RR into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -238,7 +238,7 @@ ldns_status ldns_str2rdf_nsap(ldns_rdf **rd, const char *str);
/**
* convert a str with a ATMA RR into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -246,7 +246,7 @@ ldns_status ldns_str2rdf_atma(ldns_rdf **rd, const char *str);
/**
* convert a str with a IPSECKEY RR into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -254,7 +254,7 @@ ldns_status ldns_str2rdf_ipseckey(ldns_rdf **rd, const char *str);
/**
* convert a dname string into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -262,7 +262,7 @@ ldns_status ldns_str2rdf_dname(ldns_rdf **rd, const char *str);
/**
* convert 4 * 16bit hex separated by colons into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -270,7 +270,7 @@ ldns_status ldns_str2rdf_ilnp64(ldns_rdf **rd, const char *str);
/**
* convert 6 hex bytes separated by dashes into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -278,7 +278,7 @@ ldns_status ldns_str2rdf_eui48(ldns_rdf **rd, const char *str);
/**
* convert 8 hex bytes separated by dashes into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -286,7 +286,7 @@ ldns_status ldns_str2rdf_eui64(ldns_rdf **rd, const char *str);
/**
* Convert a non-zero sequence of US-ASCII letters and numbers into wireformat
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -295,7 +295,7 @@ ldns_status ldns_str2rdf_tag(ldns_rdf **rd, const char *str);
/**
* Convert a <character-string> encoding of the value field as specified
* [RFC1035], Section 5.1., encoded as one bug chunk of data.
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
@@ -305,12 +305,32 @@ ldns_status ldns_str2rdf_long_str(ldns_rdf **rd, const char *str);
* Convert a "<algorithm> <hit> <pk>" encoding of the value field as specified
* in Section 6. of [RFC5205], encoded as wireformat as specified in Section 5.
* of [RFC5205].
- * \param[in] rd the rdf where to put the data
+ * \param[out] rd the rdf where to put the data
* \param[in] str the string to be converted
* \return ldns_status
*/
ldns_status ldns_str2rdf_hip(ldns_rdf **rd, const char *str);
+/**
+ * Convert a "<precedence> <D-bit> <type> <relay>" encoding
+ * of the value field as specified in Section 4.3.1 of
+ * [draft-ietf-mboned-driad-amt-discovery], encoded as wireformat as specified in
+ * Section 4.2 of [draft-ietf-mboned-driad-amt-discovery]
+ * \param[out] rd the rdf where to put the data
+ * \param[in] str the string to be converted
+ * \return ldns_status
+ */
+ldns_status ldns_str2rdf_amtrelay(ldns_rdf **rd, const char *str);
+
+/**
+ * Convert a series of "key[=<value>]" encodings to wireformat as described in
+ * [draft-ietf-dnsop-svcb-https].
+ * \param[out] rd the rdf where to put the data
+ * \param[in] str the string to be converted
+ * \return ldns_status
+ */
+ldns_status ldns_str2rdf_svcparams(ldns_rdf **rd, const char *str);
+
#ifdef __cplusplus
}
diff --git a/ldns/update.h b/ldns/update.h
index 414aff73c07e..8840d3842702 100644
--- a/ldns/update.h
+++ b/ldns/update.h
@@ -42,7 +42,7 @@ ldns_pkt *ldns_update_pkt_new(ldns_rdf *zone_rdf, ldns_rr_class clas, const ldns
* \param[in] p packet to copy to
* \param[in] r resolver to copy from
*
- * \return status wether successfull or not
+ * \return status whether successful or not
*/
ldns_status ldns_update_pkt_tsig_add(ldns_pkt *p, const ldns_resolver *r);
diff --git a/ldns/util.h.in b/ldns/util.h.in
index 514fcf3bb434..7115a2b7f3bf 100644
--- a/ldns/util.h.in
+++ b/ldns/util.h.in
@@ -274,19 +274,22 @@ time_t mktime_from_utc(const struct tm *tm);
/**
* The function interprets time as the number of seconds since epoch
- * with respect to now using serial arithmitics (rfc1982).
+ * with respect to now using serial arithmetics (rfc1982).
* That number of seconds is then converted to broken-out time information.
* This is especially useful when converting the inception and expiration
* fields of RRSIG records.
*
* \param[in] time number of seconds since epoch (midnight, January 1st, 1970)
- * to be intepreted as a serial arithmitics number relative to now.
+ * to be interpreted as a serial arithmetics number relative to now.
* \param[in] now number of seconds since epoch (midnight, January 1st, 1970)
* to which the time value is compared to determine the final value.
* \param[out] result the struct with the broken-out time information
* \return result on success or NULL on error
*/
-struct tm * ldns_serial_arithmitics_gmtime_r(int32_t time, time_t now, struct tm *result);
+struct tm * ldns_serial_arithmetics_gmtime_r(int32_t time, time_t now, struct tm *result);
+
+/* previously used wrong spelling */
+#define ldns_serial_arithmitics_gmtime_r ldns_serial_arithmetics_gmtime_r
/**
* Seed the random function.
diff --git a/ldns/wire2host.h b/ldns/wire2host.h
index 6a7999c31d72..67b385c163aa 100644
--- a/ldns/wire2host.h
+++ b/ldns/wire2host.h
@@ -118,7 +118,7 @@ extern "C" {
* This function will initialize and allocate memory space for the packet
* structure.
*
- * \param[in] packet pointer to the structure to hold the packet
+ * \param[out] packet pointer to the structure to hold the packet
* \param[in] data pointer to the buffer with the data
* \param[in] len the length of the data buffer (in bytes)
* \return LDNS_STATUS_OK if everything succeeds, error otherwise
@@ -130,7 +130,7 @@ ldns_status ldns_wire2pkt(ldns_pkt **packet, const uint8_t *data, size_t len);
* This function will initialize and allocate memory space for the packet
* structure.
*
- * \param[in] packet pointer to the structure to hold the packet
+ * \param[out] packet pointer to the structure to hold the packet
* \param[in] buffer the buffer with the data
* \return LDNS_STATUS_OK if everything succeeds, error otherwise
*/
@@ -142,7 +142,7 @@ ldns_status ldns_buffer2pkt_wire(ldns_pkt **packet, const ldns_buffer *buffer);
* space for the dname structure. The length of the wiredata of this rdf
* is added to the *pos value.
*
- * \param[in] dname pointer to the structure to hold the rdata value
+ * \param[out] dname pointer to the structure to hold the rdata value
* \param[in] wire pointer to the buffer with the data
* \param[in] max the length of the data buffer (in bytes)
* \param[in] pos the position of the rdf in the buffer (ie. the number of bytes
@@ -177,7 +177,7 @@ ldns_status ldns_wire2rdf(ldns_rr *rr, const uint8_t *wire, size_t max, size_t *
* structure.
* The length of the wiredata of this rr is added to the *pos value.
*
- * \param[in] rr pointer to the structure to hold the rdata value
+ * \param[out] rr pointer to the structure to hold the rdata value
* \param[in] wire pointer to the buffer with the data
* \param[in] max the length of the data buffer (in bytes)
* \param[in] pos the position of the rr in the buffer (ie. the number of bytes
diff --git a/ldns/zone.h b/ldns/zone.h
index f51b6bc0ebc1..805661f878f7 100644
--- a/ldns/zone.h
+++ b/ldns/zone.h
@@ -43,7 +43,7 @@ struct ldns_struct_zone
{
/** the soa defines a zone */
ldns_rr *_soa;
- /* basicly a zone is a list of rr's */
+ /* basically a zone is a list of rr's */
ldns_rr_list *_rrs;
/* we could change this to be a b-tree etc etc todo */
};
@@ -97,7 +97,7 @@ void ldns_zone_set_rrs(ldns_zone *z, ldns_rr_list *rrlist);
* copying, so the rr_list structure inside z is modified!
* \param[in] z the zone to add to
* \param[in] list the list to add
- * \return a true on succes otherwise falsed
+ * \return a true on success otherwise false
*/
bool ldns_zone_push_rr_list(ldns_zone *z, const ldns_rr_list *list);
@@ -106,7 +106,7 @@ bool ldns_zone_push_rr_list(ldns_zone *z, const ldns_rr_list *list);
* copying, so the rr_list structure inside z is modified!
* \param[in] z the zone to add to
* \param[in] rr the rr to add
- * \return a true on succes otherwise falsed
+ * \return a true on success otherwise false
*/
bool ldns_zone_push_rr(ldns_zone *z, ldns_rr *rr);
diff --git a/libdns.doxygen b/libdns.doxygen.in
index 014baa28caa3..c83cdf4c2191 100644
--- a/libdns.doxygen
+++ b/libdns.doxygen.in
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.11
+# Doxyfile 1.9.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@@ -17,11 +17,11 @@
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
+# This tag specifies the encoding used for all characters in the configuration
+# file that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@@ -32,13 +32,13 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
-PROJECT_NAME = ldns
+PROJECT_NAME = @PACKAGE_NAME@
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 1.7.0
+PROJECT_NUMBER = @PACKAGE_VERSION@
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
+# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all generated output in the proper direction.
+# Possible values are: None, LTR, RTL and Context.
+# The default value is: None.
+
+OUTPUT_TEXT_DIRECTION = None
+
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
@@ -179,6 +187,16 @@ SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
+# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
+# such as
+# /***************
+# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
+# Javadoc-style will behave just like regular comments and it will not be
+# interpreted by doxygen.
+# The default value is: NO.
+
+JAVADOC_BANNER = NO
+
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
@@ -199,6 +217,14 @@ QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
+# By default Python docstrings are displayed as preformatted text and doxygen's
+# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
+# doxygen's special commands can be used and the contents of the docstring
+# documentation blocks is shown as doxygen documentation.
+# The default value is: YES.
+
+PYTHON_DOCSTRING = YES
+
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.
@@ -226,16 +252,15 @@ TAB_SIZE = 8
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
+# newlines (in the resulting output). You can put ^^ in the value part of an
+# alias to insert a newline as if a physical newline was in the original file.
+# When you need a literal { or } or , in the value part of an alias you have to
+# escape them by means of a backslash (\), this can lead to conflicts with the
+# commands \{ and \} for these it is advised to use the version @{ and @} or use
+# a double escape (\\{ and \\})
ALIASES =
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@@ -264,28 +289,40 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
+# sources only. Doxygen will then generate output that is more tailored for that
+# language. For instance, namespaces will be presented as modules, types will be
+# separated into more groups, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_SLICE = NO
+
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
+# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
+# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
+# tries to guess whether the code is fixed or free formatted code, this is the
+# default for Fortran type files). For instance to make doxygen treat .inc files
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
+# the files are not read by doxygen. When specifying no_extension you should add
+# * to the FILE_PATTERNS.
+#
+# Note see also the list of default file extension mappings.
EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
@@ -293,6 +330,15 @@ EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 5.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 5
+
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
@@ -318,7 +364,7 @@ BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@@ -404,6 +450,19 @@ TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
+# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
+# during processing. When set to 0 doxygen will based this on the number of
+# cores available in the system. You can set it explicitly to a value larger
+# than 0 to get more control over the balance between CPU load and processing
+# speed. At this moment only the input processing can be done using multiple
+# threads. Since this is still an experimental feature the default is set to 1,
+# which efficively disables parallel processing. Please report any issues you
+# encounter. Generating dot graphs in parallel is controlled by the
+# DOT_NUM_THREADS setting.
+# Minimum value: 0, maximum value: 32, default value: 1.
+
+NUM_PROC_THREADS = 1
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -424,6 +483,12 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
+# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
+# methods of a class will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIV_VIRTUAL = NO
+
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
# The default value is: NO.
@@ -461,6 +526,13 @@ EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
+# If this flag is set to YES, the name of an unnamed parameter in a declaration
+# will be determined by the corresponding definition. By default unnamed
+# parameters remain unnamed in the output.
+# The default value is: YES.
+
+RESOLVE_UNNAMED_PARAMS = YES
+
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation
@@ -478,8 +550,8 @@ HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
+# declarations. If set to NO, these declarations will be included in the
+# documentation.
# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
@@ -498,11 +570,18 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
+# With the correct setting of option CASE_SENSE_NAMES doxygen will better be
+# able to match the capabilities of the underlying filesystem. In case the
+# filesystem is case sensitive (i.e. it supports files in the same directory
+# whose names only differ in casing), the option must be set to YES to properly
+# deal with such files in case they appear in the input. For filesystems that
+# are not case sensitive the option should be be set to NO to properly deal with
+# output files written for symbols that only differ in casing, such as for two
+# classes, one named CLASS and the other named Class, and to also support
+# references to files without having to specify the exact matching casing. On
+# Windows (including Cygwin) and MacOS, users should typically set this option
+# to NO, whereas on Linux or other Unix flavors it should typically be set to
+# YES.
# The default value is: system dependent.
CASE_SENSE_NAMES = YES
@@ -689,7 +768,7 @@ LAYOUT_FILE =
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@@ -734,13 +813,17 @@ WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
+# parameter documentation, but not about the absence of documentation. If
+# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
# The default value is: NO.
WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
-# a warning is encountered.
+# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
+# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
+# at the end of the doxygen process doxygen will return with a non-zero status.
+# Possible values are: NO, YES and FAIL_ON_WARNINGS.
# The default value is: NO.
WARN_AS_ERROR = NO
@@ -781,8 +864,8 @@ INPUT = . \
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
+# documentation (see:
+# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
@@ -795,11 +878,15 @@ INPUT_ENCODING = UTF-8
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
+# Note the list of default checked file patterns might differ from the list of
+# default file extension mappings.
+#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
-# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
+# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
+# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
+# *.ucf, *.qsf and *.ice.
FILE_PATTERNS =
@@ -954,7 +1041,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
+# entity all documented functions referencing it will be listed.
# The default value is: NO.
REFERENCED_BY_RELATION = NO
@@ -986,12 +1073,12 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
+# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
@@ -1014,16 +1101,22 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
-# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
-# cost of reduced performance. This can be particularly helpful with template
-# rich C++ code for which doxygen's built-in parser lacks the necessary type
-# information.
+# clang parser (see:
+# http://clang.llvm.org/) for more accurate parsing at the cost of reduced
+# performance. This can be particularly helpful with template rich C++ code for
+# which doxygen's built-in parser lacks the necessary type information.
# Note: The availability of this option depends on whether or not doxygen was
-# generated with the -Duse-libclang=ON option for CMake.
+# generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
+# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to
+# YES then doxygen will add the directory of each input to the include path.
+# The default value is: YES.
+
+CLANG_ADD_INC_PATHS = YES
+
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
@@ -1032,6 +1125,19 @@ CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
+# If clang assisted parsing is enabled you can provide the clang parser with the
+# path to the directory containing a file called compile_commands.json. This
+# file is the compilation database (see:
+# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
+# options used when the source files were built. This is equivalent to
+# specifying the -p option to a clang tool, such as clang-check. These options
+# will then be passed to the parser. Any options specified with CLANG_OPTIONS
+# will be added as well.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse_libclang=ON option for CMake.
+
+CLANG_DATABASE_PATH =
+
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@@ -1043,13 +1149,6 @@ CLANG_OPTIONS =
ALPHABETICAL_INDEX = YES
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 3
-
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1150,7 +1249,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@@ -1186,6 +1285,17 @@ HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via JavaScript. If disabled, the navigation index will
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have JavaScript,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS = YES
+
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@@ -1209,13 +1319,14 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
+# environment (see:
+# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
+# create a documentation set, doxygen will generate a Makefile in the HTML
+# output directory. Running make will produce the docset in that directory and
+# running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
+# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
+# genXcode/_index.html for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1254,8 +1365,8 @@ DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
+# (see:
+# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows.
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
@@ -1285,7 +1396,7 @@ CHM_FILE =
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
+# (YES) or that it should be included in the main .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@@ -1330,7 +1441,8 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1338,8 +1450,8 @@ QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
+# Folders (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1347,30 +1459,30 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
+# The QHG_LOCATION tag can be used to specify the location (absolute path
+# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to
+# run qhelpgenerator on the generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION =
@@ -1447,6 +1559,17 @@ TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
+# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
+# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
+# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
+# the HTML output. These images will generally look nicer at scaled resolutions.
+# Possible values are: png (the default) and svg (looks nicer but requires the
+# pdf2svg or inkscape tool).
+# The default value is: png.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FORMULA_FORMAT = png
+
# Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful
# doxygen run you need to manually remove any form_*.png images from the HTML
@@ -1456,7 +1579,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
@@ -1467,8 +1590,14 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
+# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
+# to create new LaTeX commands to be used in formulas as building blocks. See
+# the section "Including formulas" for details.
+
+FORMULA_MACROFILE =
+
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
+# https://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@@ -1480,7 +1609,7 @@ USE_MATHJAX = NO
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
@@ -1495,8 +1624,8 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# MathJax from https://www.mathjax.org before deployment.
+# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
@@ -1510,7 +1639,8 @@ MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -1538,7 +1668,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = NO
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
+# implemented using a web server instead of a web client using JavaScript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
@@ -1557,7 +1687,8 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
+# Xapian (see:
+# https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@@ -1570,8 +1701,9 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
+# Xapian (see:
+# https://xapian.org/). See the section "External Indexing and Searching" for
+# details.
# This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL =
@@ -1622,21 +1754,35 @@ LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
+# Note that when not enabling USE_PDFLATEX the default is latex when enabling
+# USE_PDFLATEX the default is pdflatex and when in the later case latex is
+# chosen this is overwritten by pdflatex. For specific output languages the
+# default can have been set differently, this depends on the implementation of
+# the output language.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
+# Note: This tag is used in the Makefile / make.bat.
+# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
+# (.tex).
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
+# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
+# generate index for LaTeX. In case there is no backslash (\) as first character
+# it will be automatically added in the LaTeX code.
+# Note: This tag is used in the generated output file (.tex).
+# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
+# The default value is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_MAKEINDEX_CMD = makeindex
+
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
@@ -1721,9 +1867,11 @@ LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
+# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
+# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
+# files. Set this option to YES, to get a higher quality PDF documentation.
+#
+# See also section LATEX_CMD_NAME for selecting the engine.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1757,7 +1905,7 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1771,6 +1919,14 @@ LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
+# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
+# path from which the emoji images will be read. If a relative path is entered,
+# it will be relative to the LATEX_OUTPUT directory. If left blank the
+# LATEX_OUTPUT directory will be used.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EMOJI_DIRECTORY =
+
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1810,9 +1966,9 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# configuration file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
@@ -1821,8 +1977,8 @@ RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
+# similar to doxygen's configuration file. A template extensions file can be
+# generated using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
@@ -1908,6 +2064,13 @@ XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
+# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
+# namespace members in file scope as well, matching the HTML output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_NS_MEMB_FILE_SCOPE = NO
+
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
@@ -1940,9 +2103,9 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@@ -2109,12 +2272,6 @@ EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
@@ -2128,15 +2285,6 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
@@ -2234,10 +2382,32 @@ UML_LOOK = NO
# but if the number exceeds 15, the total amount of fields shown is limited to
# 10.
# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
+# This tag requires that the tag UML_LOOK is set to YES.
UML_LIMIT_NUM_FIELDS = 10
+# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and
+# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS
+# tag is set to YES, doxygen will add type and arguments for attributes and
+# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen
+# will not generate fields with class member information in the UML graphs. The
+# class diagrams will look similar to the default class diagrams but using UML
+# notation for the relationships.
+# Possible values are: NO, YES and NONE.
+# The default value is: NO.
+# This tag requires that the tag UML_LOOK is set to YES.
+
+DOT_UML_DETAILS = NO
+
+# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters
+# to display on a single line. If the actual line length exceeds this threshold
+# significantly it will wrapped across multiple lines. Some heuristics are apply
+# to avoid ugly line breaks.
+# Minimum value: 0, maximum value: 1000, default value: 17.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_WRAP_THRESHOLD = 17
+
# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
# collaboration graphs will show the relations between templates and their
# instances.
@@ -2366,6 +2536,11 @@ DIAFILE_DIRS =
PLANTUML_JAR_PATH =
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
@@ -2424,9 +2599,11 @@ DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
# files that are used to generate the various graphs.
+#
+# Note: This setting is not only used for dot files but also for msc and
+# plantuml temporary files.
# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
diff --git a/ltmain.sh b/ltmain.sh
index 2ad8be8483de..540a92ab5476 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -31,7 +31,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-1"
+VERSION="2.4.6 Debian-2.4.6-15build2"
package_revision=2.4.6
@@ -387,7 +387,7 @@ EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
# putting '$debug_cmd' at the start of all your functions, you can get
# bash to show function call trace with:
#
-# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
debug_cmd=${debug_cmd-":"}
exit_cmd=:
@@ -1370,7 +1370,7 @@ func_lt_ver ()
#! /bin/sh
# Set a version string for this script.
-scriptversion=2014-01-07.03; # UTC
+scriptversion=2015-10-07.11; # UTC
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
@@ -1530,6 +1530,8 @@ func_run_hooks ()
{
$debug_cmd
+ _G_rc_run_hooks=false
+
case " $hookable_fns " in
*" $1 "*) ;;
*) func_fatal_error "'$1' does not support hook funcions.n" ;;
@@ -1538,16 +1540,16 @@ func_run_hooks ()
eval _G_hook_fns=\$$1_hooks; shift
for _G_hook in $_G_hook_fns; do
- eval $_G_hook '"$@"'
-
- # store returned options list back into positional
- # parameters for next 'cmd' execution.
- eval _G_hook_result=\$${_G_hook}_result
- eval set dummy "$_G_hook_result"; shift
+ if eval $_G_hook '"$@"'; then
+ # store returned options list back into positional
+ # parameters for next 'cmd' execution.
+ eval _G_hook_result=\$${_G_hook}_result
+ eval set dummy "$_G_hook_result"; shift
+ _G_rc_run_hooks=:
+ fi
done
- func_quote_for_eval ${1+"$@"}
- func_run_hooks_result=$func_quote_for_eval_result
+ $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
}
@@ -1557,10 +1559,16 @@ func_run_hooks ()
## --------------- ##
# In order to add your own option parsing hooks, you must accept the
-# full positional parameter list in your hook function, remove any
-# options that you action, and then pass back the remaining unprocessed
+# full positional parameter list in your hook function, you may remove/edit
+# any options that you action, and then pass back the remaining unprocessed
# options in '<hooked_function_name>_result', escaped suitably for
-# 'eval'. Like this:
+# 'eval'. In this case you also must return $EXIT_SUCCESS to let the
+# hook's caller know that it should pay attention to
+# '<hooked_function_name>_result'. Returning $EXIT_FAILURE signalizes that
+# arguments are left untouched by the hook and therefore caller will ignore the
+# result variable.
+#
+# Like this:
#
# my_options_prep ()
# {
@@ -1570,9 +1578,11 @@ func_run_hooks ()
# usage_message=$usage_message'
# -s, --silent don'\''t print informational messages
# '
-#
-# func_quote_for_eval ${1+"$@"}
-# my_options_prep_result=$func_quote_for_eval_result
+# # No change in '$@' (ignored completely by this hook). There is
+# # no need to do the equivalent (but slower) action:
+# # func_quote_for_eval ${1+"$@"}
+# # my_options_prep_result=$func_quote_for_eval_result
+# false
# }
# func_add_hook func_options_prep my_options_prep
#
@@ -1581,25 +1591,37 @@ func_run_hooks ()
# {
# $debug_cmd
#
+# args_changed=false
+#
# # Note that for efficiency, we parse as many options as we can
# # recognise in a loop before passing the remainder back to the
# # caller on the first unrecognised argument we encounter.
# while test $# -gt 0; do
# opt=$1; shift
# case $opt in
-# --silent|-s) opt_silent=: ;;
+# --silent|-s) opt_silent=:
+# args_changed=:
+# ;;
# # Separate non-argument short options:
# -s*) func_split_short_opt "$_G_opt"
# set dummy "$func_split_short_opt_name" \
# "-$func_split_short_opt_arg" ${1+"$@"}
# shift
+# args_changed=:
# ;;
-# *) set dummy "$_G_opt" "$*"; shift; break ;;
+# *) # Make sure the first unrecognised option "$_G_opt"
+# # is added back to "$@", we could need that later
+# # if $args_changed is true.
+# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
# esac
# done
#
-# func_quote_for_eval ${1+"$@"}
-# my_silent_option_result=$func_quote_for_eval_result
+# if $args_changed; then
+# func_quote_for_eval ${1+"$@"}
+# my_silent_option_result=$func_quote_for_eval_result
+# fi
+#
+# $args_changed
# }
# func_add_hook func_parse_options my_silent_option
#
@@ -1611,16 +1633,32 @@ func_run_hooks ()
# $opt_silent && $opt_verbose && func_fatal_help "\
# '--silent' and '--verbose' options are mutually exclusive."
#
-# func_quote_for_eval ${1+"$@"}
-# my_option_validation_result=$func_quote_for_eval_result
+# false
# }
# func_add_hook func_validate_options my_option_validation
#
-# You'll alse need to manually amend $usage_message to reflect the extra
+# You'll also need to manually amend $usage_message to reflect the extra
# options you parse. It's preferable to append if you can, so that
# multiple option parsing hooks can be added safely.
+# func_options_finish [ARG]...
+# ----------------------------
+# Finishing the option parse loop (call 'func_options' hooks ATM).
+func_options_finish ()
+{
+ $debug_cmd
+
+ _G_func_options_finish_exit=false
+ if func_run_hooks func_options ${1+"$@"}; then
+ func_options_finish_result=$func_run_hooks_result
+ _G_func_options_finish_exit=:
+ fi
+
+ $_G_func_options_finish_exit
+}
+
+
# func_options [ARG]...
# ---------------------
# All the functions called inside func_options are hookable. See the
@@ -1630,17 +1668,28 @@ func_options ()
{
$debug_cmd
- func_options_prep ${1+"$@"}
- eval func_parse_options \
- ${func_options_prep_result+"$func_options_prep_result"}
- eval func_validate_options \
- ${func_parse_options_result+"$func_parse_options_result"}
+ _G_rc_options=false
- eval func_run_hooks func_options \
- ${func_validate_options_result+"$func_validate_options_result"}
+ for my_func in options_prep parse_options validate_options options_finish
+ do
+ if eval func_$my_func '${1+"$@"}'; then
+ eval _G_res_var='$'"func_${my_func}_result"
+ eval set dummy "$_G_res_var" ; shift
+ _G_rc_options=:
+ fi
+ done
+
+ # Save modified positional parameters for caller. As a top-level
+ # options-parser function we always need to set the 'func_options_result'
+ # variable (regardless the $_G_rc_options value).
+ if $_G_rc_options; then
+ func_options_result=$_G_res_var
+ else
+ func_quote_for_eval ${1+"$@"}
+ func_options_result=$func_quote_for_eval_result
+ fi
- # save modified positional parameters for caller
- func_options_result=$func_run_hooks_result
+ $_G_rc_options
}
@@ -1649,9 +1698,9 @@ func_options ()
# All initialisations required before starting the option parse loop.
# Note that when calling hook functions, we pass through the list of
# positional parameters. If a hook function modifies that list, and
-# needs to propogate that back to rest of this script, then the complete
+# needs to propagate that back to rest of this script, then the complete
# modified list must be put in 'func_run_hooks_result' before
-# returning.
+# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
func_hookable func_options_prep
func_options_prep ()
{
@@ -1661,10 +1710,14 @@ func_options_prep ()
opt_verbose=false
opt_warning_types=
- func_run_hooks func_options_prep ${1+"$@"}
+ _G_rc_options_prep=false
+ if func_run_hooks func_options_prep ${1+"$@"}; then
+ _G_rc_options_prep=:
+ # save modified positional parameters for caller
+ func_options_prep_result=$func_run_hooks_result
+ fi
- # save modified positional parameters for caller
- func_options_prep_result=$func_run_hooks_result
+ $_G_rc_options_prep
}
@@ -1678,18 +1731,20 @@ func_parse_options ()
func_parse_options_result=
+ _G_rc_parse_options=false
# this just eases exit handling
while test $# -gt 0; do
# Defer to hook functions for initial option parsing, so they
# get priority in the event of reusing an option name.
- func_run_hooks func_parse_options ${1+"$@"}
-
- # Adjust func_parse_options positional parameters to match
- eval set dummy "$func_run_hooks_result"; shift
+ if func_run_hooks func_parse_options ${1+"$@"}; then
+ eval set dummy "$func_run_hooks_result"; shift
+ _G_rc_parse_options=:
+ fi
# Break out of the loop if we already parsed every option.
test $# -gt 0 || break
+ _G_match_parse_options=:
_G_opt=$1
shift
case $_G_opt in
@@ -1704,7 +1759,10 @@ func_parse_options ()
;;
--warnings|--warning|-W)
- test $# = 0 && func_missing_arg $_G_opt && break
+ if test $# = 0 && func_missing_arg $_G_opt; then
+ _G_rc_parse_options=:
+ break
+ fi
case " $warning_categories $1" in
*" $1 "*)
# trailing space prevents matching last $1 above
@@ -1757,15 +1815,25 @@ func_parse_options ()
shift
;;
- --) break ;;
+ --) _G_rc_parse_options=: ; break ;;
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift
+ _G_match_parse_options=false
+ break
+ ;;
esac
+
+ $_G_match_parse_options && _G_rc_parse_options=:
done
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- func_parse_options_result=$func_quote_for_eval_result
+
+ if $_G_rc_parse_options; then
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ func_parse_options_result=$func_quote_for_eval_result
+ fi
+
+ $_G_rc_parse_options
}
@@ -1778,16 +1846,21 @@ func_validate_options ()
{
$debug_cmd
+ _G_rc_validate_options=false
+
# Display all warnings if -W was not given.
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
- func_run_hooks func_validate_options ${1+"$@"}
+ if func_run_hooks func_validate_options ${1+"$@"}; then
+ # save modified positional parameters for caller
+ func_validate_options_result=$func_run_hooks_result
+ _G_rc_validate_options=:
+ fi
# Bail if the options were screwed!
$exit_cmd $EXIT_FAILURE
- # save modified positional parameters for caller
- func_validate_options_result=$func_run_hooks_result
+ $_G_rc_validate_options
}
@@ -1977,7 +2050,7 @@ func_version ()
# End:
# Set a version string.
-scriptversion='(GNU libtool) 2.4.6 Debian-2.4.6-1'
+scriptversion='(GNU libtool) 2.4.6'
# func_echo ARG...
@@ -2068,7 +2141,7 @@ include the following information:
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname $scriptversion
+ version: $progname $scriptversion Debian-2.4.6-15build2
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
@@ -2270,6 +2343,8 @@ libtool_options_prep ()
nonopt=
preserve_args=
+ _G_rc_lt_options_prep=:
+
# Shorthand for --mode=foo, only valid as the first argument
case $1 in
clean|clea|cle|cl)
@@ -2293,11 +2368,18 @@ libtool_options_prep ()
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set dummy --mode uninstall ${1+"$@"}; shift
;;
+ *)
+ _G_rc_lt_options_prep=false
+ ;;
esac
- # Pass back the list of options.
- func_quote_for_eval ${1+"$@"}
- libtool_options_prep_result=$func_quote_for_eval_result
+ if $_G_rc_lt_options_prep; then
+ # Pass back the list of options.
+ func_quote_for_eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_for_eval_result
+ fi
+
+ $_G_rc_lt_options_prep
}
func_add_hook func_options_prep libtool_options_prep
@@ -2309,9 +2391,12 @@ libtool_parse_options ()
{
$debug_cmd
+ _G_rc_lt_parse_options=false
+
# Perform our own loop to consume as many options as possible in
# each iteration.
while test $# -gt 0; do
+ _G_match_lt_parse_options=:
_G_opt=$1
shift
case $_G_opt in
@@ -2386,15 +2471,22 @@ libtool_parse_options ()
func_append preserve_args " $_G_opt"
;;
- # An option not handled by this hook function:
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"} ; shift
+ _G_match_lt_parse_options=false
+ break
+ ;;
esac
+ $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
done
+ if $_G_rc_lt_parse_options; then
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_for_eval_result
+ fi
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- libtool_parse_options_result=$func_quote_for_eval_result
+ $_G_rc_lt_parse_options
}
func_add_hook func_parse_options libtool_parse_options
@@ -7275,10 +7367,13 @@ func_mode_link ()
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
# -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
+ # -static-* direct GCC to link specific libraries statically
+ # -fcilkplus Cilk Plus language extension features for C/C++
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
- -specs=*|-fsanitize=*)
+ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
diff --git a/m4/ax_config_feature.m4 b/m4/ax_config_feature.m4
index e205723e0159..3c2f2ef27ff7 100644
--- a/m4/ax_config_feature.m4
+++ b/m4/ax_config_feature.m4
@@ -1,5 +1,5 @@
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_config_feature.html
+# https://www.gnu.org/software/autoconf-archive/ax_config_feature.html
# ===========================================================================
#
# SYNOPSIS
@@ -73,7 +73,7 @@
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
+# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
@@ -88,7 +88,7 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 10
+#serial 11
AC_DEFUN([AX_CONFIG_FEATURE],[ dnl
m4_pushdef([FEATURE], patsubst([$1], -, _))dnl
diff --git a/m4/ax_have_poll.m4 b/m4/ax_have_poll.m4
index 14d3d4b3055f..b90cda684d30 100644
--- a/m4/ax_have_poll.m4
+++ b/m4/ax_have_poll.m4
@@ -1,5 +1,5 @@
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_have_poll.html
+# https://www.gnu.org/software/autoconf-archive/ax_have_poll.html
# ===========================================================================
#
# SYNOPSIS
@@ -34,7 +34,7 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 7
+#serial 8
AC_DEFUN([AX_HAVE_POLL], [dnl
AC_MSG_CHECKING([for poll(2)])
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index ee80844b619f..c4c02946dece 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1041,8 +1041,8 @@ int forced_loaded() { return 2;}
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
$RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
cat > conftest.c << _LT_EOF
@@ -1071,11 +1071,11 @@ _LT_EOF
# to the OS version, if on x86, and 10.4, the deployment
# target defaults to 10.4. Don't you love it?
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[[012]][[,.]]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- 10.*)
+ 10.*|11.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;
@@ -1492,7 +1492,7 @@ need_locks=$enable_libtool_lock
m4_defun([_LT_PROG_AR],
[AC_CHECK_TOOLS(AR, [ar], false)
: ${AR=ar}
-: ${AR_FLAGS=cru}
+: ${AR_FLAGS=cr}
_LT_DECL([], [AR], [1], [The archiver])
_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
@@ -4063,7 +4063,8 @@ _LT_EOF
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
@@ -4703,6 +4704,12 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
+ # flang / f18. f95 an alias for gfortran or flang on Debian
+ flang* | f18* | f95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
@@ -6438,7 +6445,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
GXX=no
@@ -6813,7 +6820,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
@@ -6878,7 +6885,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
@@ -7217,7 +7224,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
# FIXME: insert proper C++ library support
@@ -7301,7 +7308,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
else
# g++ 2.7 appears to require '-G' NOT '-shared' on this
# platform.
@@ -7312,7 +7319,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
fi
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
diff --git a/makewin.sh b/makewin.sh
new file mode 100755
index 000000000000..accc9058e75e
--- /dev/null
+++ b/makewin.sh
@@ -0,0 +1,263 @@
+#!/usr/bin/env bash
+
+# compile ldns for windows
+cdir="$(echo ldns.win.$$)"
+tmpdir=$(pwd)
+mkdir "$cdir"
+cd "$cdir"
+#configure="mingw32-configure"
+#strip="i686-w64-mingw32-strip"
+#warch="i686"
+configure="mingw64-configure"
+strip="x86_64-w64-mingw32-strip"
+warch="x86_64"
+WINSSL="$HOME/Downloads/openssl-1.1.0h.tar.gz"
+cross_flag=""
+cross_flag_nonstatic=""
+RC="no"
+SNAPSHOT="no"
+CHECKOUT=""
+# the destination is a zipfile in the start directory ldns-a.b.c.zip
+# the start directory is a git repository, and it is copied to build from.
+
+info () {
+ echo "info: $1"
+}
+
+error_cleanup () {
+ echo "$1"
+ cd "$tmpdir"
+ rm -rf "$cdir"
+ exit 1
+}
+
+replace_text () {
+ (cp "$1" "$1".orig && \
+ sed -e "s/$2/$3/g" < "$1".orig > "$1" && \
+ rm "$1".orig) || error_cleanup "Replacement for $1 failed."
+}
+
+# Parse command line arguments
+while [ "$1" ]; do
+ case "$1" in
+ "-h")
+ echo "Compile a zip file with static executables, and"
+ echo "dynamic library, static library, include dir and"
+ echo "manual pages."
+ echo ""
+ echo " -h This usage information."
+ echo " -s snapshot, current date appended to version"
+ echo " -rc <nr> release candidate, the number is added to version"
+ echo " ldns-<version>rc<nr>."
+ echo " -c <tag/br> Checkout this tag or branch, (defaults to current"
+ echo " branch)."
+ echo " -wssl <file> Pass openssl.tar.gz file, use absolute path."
+ echo ""
+ exit 1
+ ;;
+ "-c")
+ CHECKOUT="$2"
+ shift
+ ;;
+ "-s")
+ SNAPSHOT="yes"
+ ;;
+ "-rc")
+ RC="$2"
+ shift
+ ;;
+ "-wssl")
+ WINSSL="$2"
+ shift
+ ;;
+ *)
+ error_cleanup "Unrecognized argument -- $1"
+ ;;
+ esac
+ shift
+done
+if [ -z "$CHECKOUT" ]
+then
+ if [ "$RC" = "no" ]
+ then
+ CHECKOUT=$( (git status | head -n 1 | awk '{print$3}') || echo master)
+ else
+ CHECKOUT=$( (git status | head -n 1 | awk '{print$3}') || echo develop)
+ fi
+fi
+
+# this script creates a temp directory $cdir.
+# this directory contains subdirectories:
+# ldns/ : ldns source compiled
+# openssl-a.b.c/ : the openSSL source compiled
+# ldnsinstall/ : install of ldns here.
+# sslinstall/ : install of ssl here.
+# file/ : directory to gather the components of the zipfile distribution
+# ldns-nonstatic/ : ldns source compiled nonstatic
+# ldnsinstall-nonstatic/ : install of ldns nonstatic compile
+# openssl-nonstatic/ : nonstatic openssl source compiled
+# sslinstall-nonstatic/ : install of nonstatic openssl compile
+
+info "exporting source into $cdir/ldns"
+git clone git://git.nlnetlabs.nl/ldns/ ldns || error_cleanup "git command failed"
+(cd ldns; git checkout "$CHECKOUT") || error_cleanup "Could not checkout $CHECKOUT"
+#svn export . $cdir/ldns
+info "exporting source into $cdir/ldns-nonstatic"
+git clone git://git.nlnetlabs.nl/ldns/ ldns-nonstatic || error_cleanup "git command failed"
+(cd ldns-nonstatic; git checkout "$CHECKOUT") || error_cleanup "Could not checkout $CHECKOUT"
+#svn export . $cdir/ldns-nonstatic
+
+# Fix up the version number if necessary
+(cd ldns; if test ! -f install-sh -a -f ../../install-sh; then cp ../../install-sh . ; fi; libtoolize -ci; autoreconf -fi)
+version=$(./ldns/configure --version | head -1 | awk '{ print $3 }') || \
+ error_cleanup "Cannot determine version number."
+info "LDNS version: $version"
+if [ "$RC" != "no" ]; then
+ info "Building LDNS release candidate $RC."
+ version2="${version}-rc$RC"
+ info "Version number: $version2"
+ replace_text "ldns/configure.ac" "AC_INIT(ldns, $version" "AC_INIT(ldns, $version2"
+ replace_text "ldns-nonstatic/configure.ac" "AC_INIT(ldns, $version" "AC_INIT(ldns, $version2"
+ version="$version2"
+fi
+if [ "$SNAPSHOT" = "yes" ]; then
+ info "Building LDNS snapshot."
+ version2="${version}_$(date +%Y%m%d)"
+ info "Snapshot version number: $version2"
+ replace_text "ldns/configure.ac" "AC_INIT(ldns, $version" "AC_INIT(ldns, $version2"
+ replace_text "ldns-nonstatic/configure.ac" "AC_INIT(ldns, $version" "AC_INIT(ldns, $version2"
+ version="$version2"
+fi
+
+# Build OpenSSL
+gzip -cd "$WINSSL" | tar xf - || error_cleanup "tar unpack of $WINSSL failed"
+sslinstall="$(pwd)/sslinstall"
+cd openssl-* || error_cleanup "no openssl-X dir in tarball"
+if test $configure = "mingw64-configure"; then
+ sslflags="no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64"
+else
+ sslflags="no-shared no-asm -DOPENSSL_NO_CAPIENG mingw"
+fi
+info "winssl: Configure $sslflags"
+CC="${warch}-w64-mingw32-gcc" AR="${warch}-w64-mingw32-ar" RANLIB="${warch}-w64-mingw32-ranlib" WINDRES="${warch}-w64-mingw32-windres" ./Configure --prefix="$sslinstall" "$sslflags" || error_cleanup "OpenSSL Configure failed"
+info "winssl: make"
+make || error_cleanup "make failed for $WINSSL"
+info "winssl: make install_sw"
+make install_sw || error_cleanup "OpenSSL install failed"
+cross_flag="$cross_flag --with-ssl=$sslinstall"
+cd ..
+
+# Build ldns
+ldnsinstall="$(pwd)/ldnsinstall"
+cd ldns
+info "ldns: autoconf"
+# cp install-sh because one at ../.. means libtoolize won't install it for us.
+if test ! -f install-sh -a -f ../../install-sh; then cp ../../install-sh . ; fi
+libtoolize -ci
+autoreconf -fi
+ldns_flag="--with-examples --with-drill"
+info "ldns: Configure $cross_flag $ldns_flag"
+$configure "$cross_flag" "$ldns_flag" || error_cleanup "ldns configure failed"
+info "ldns: make"
+make || error_cleanup "ldns make failed"
+# do not strip debug symbols, could be useful for stack traces
+# $strip lib/*.dll || error_cleanup "cannot strip ldns dll"
+make doc || error_cleanup "ldns make doc failed"
+DESTDIR=$ldnsinstall make install || error_cleanup "ldns make install failed"
+cd ..
+
+# Build OpenSSL nonstatic
+sslinstallnonstatic="$(pwd)/sslinstallnonstatic"
+mkdir openssl-nonstatic
+cd openssl-nonstatic
+# remove openssl-a.b.c/ and put in openssl-nonstatic directory
+gzip -cd "$WINSSL" | tar xf - --strip-components=1 || error_cleanup "tar unpack of $WINSSL failed"
+if test "$configure" = "mingw64-configure"; then
+ sslflags_nonstatic="shared no-asm -DOPENSSL_NO_CAPIENG mingw64"
+else
+ sslflags_nonstatic="shared no-asm -DOPENSSL_NO_CAPIENG mingw"
+fi
+info "winsslnonstatic: Configure $sslflags_nonstatic"
+CC="${warch}-w64-mingw32-gcc" AR="${warch}-w64-mingw32-ar" RANLIB="${warch}-w64-mingw32-ranlib" WINDRES="${warch}-w64-mingw32-windres" ./Configure --prefix="$sslinstallnonstatic" "$sslflags_nonstatic" || error_cleanup "OpenSSL Configure failed"
+info "winsslnonstatic: make"
+make || error_cleanup "make failed for $WINSSL"
+info "winsslnonstatic: make install_sw"
+make install_sw || error_cleanup "OpenSSL install failed"
+cross_flag_nonstatic="$cross_flag_nonstatic --with-ssl=$sslinstallnonstatic"
+cd ..
+
+# Build ldns nonstatic
+ldnsinstallnonstatic="$(pwd)/ldnsinstall-nonstatic"
+cd ldns-nonstatic
+info "ldnsnonstatic: autoconf"
+# cp install-sh because one at ../.. means libtoolize won't install it for us.
+if test ! -f install-sh -a -f ../../install-sh; then cp ../../install-sh . ; fi
+libtoolize -ci
+autoreconf -fi
+ldns_flag_nonstatic="--with-examples --with-drill"
+info "ldnsnonstatic: Configure $cross_flag_nonstatic $ldns_flag_nonstatic"
+$configure "$cross_flag_nonstatic" "$ldns_flag_nonstatic" || error_cleanup "ldns configure failed"
+info "ldnsnonstatic: make"
+make || error_cleanup "ldns make failed"
+# do not strip debug symbols, could be useful for stack traces
+# $strip lib/*.dll || error_cleanup "cannot strip ldns dll"
+make doc || error_cleanup "ldns make doc failed"
+DESTDIR=$ldnsinstallnonstatic make install || error_cleanup "ldns make install failed"
+cd ..
+
+# create zipfile
+file="ldns-$version.zip"
+rm -f "$file"
+info "Creating $file"
+mkdir file
+cd file
+installplace="$ldnsinstall/usr/$warch-w64-mingw32/sys-root/mingw"
+installplacenonstatic="$ldnsinstallnonstatic/usr/$warch-w64-mingw32/sys-root/mingw"
+cp "$installplace"/lib/libldns.a .
+cp "$installplacenonstatic"/lib/libldns.dll.a .
+cp "$installplacenonstatic"/bin/*.dll .
+cp "$sslinstallnonstatic"/lib/*.dll.a .
+cp "$sslinstallnonstatic"/bin/*.dll .
+cp "$sslinstallnonstatic"/lib/engines-*/*.dll .
+cp ../ldns/LICENSE .
+cp ../ldns/README .
+cp ../ldns/Changelog .
+info "copy static exe"
+for x in "$installplace"/bin/* ; do
+ cp "$x" "$(basename "$x").exe"
+done
+# but the shell script stays a script file
+mv ldns-config.exe ldns-config
+info "copy include"
+mkdir include
+mkdir include/ldns
+cp "$installplace"/include/ldns/*.h include/ldns/.
+info "copy man1"
+mkdir man1
+cp "$installplace"/share/man/man1/* man1/.
+info "copy man3"
+mkdir man3
+cp "$installplace"/share/man/man3/* man3/.
+info "create cat1"
+mkdir cat1
+for x in man1/*.1; do groff -man -Tascii -Z "$x" | grotty -cbu > cat1/"$(basename "$x" .1).txt"; done
+info "create cat3"
+mkdir cat3
+for x in man3/*.3; do groff -man -Tascii -Z "$x" | grotty -cbu > cat3/"$(basename "$x" .3).txt"; done
+rm -f "../../$file"
+info "$file contents"
+# show contents of directory we are zipping up.
+du -s ./*
+# zip it
+info "zip $file"
+zip -r ../../"$file" LICENSE README libldns.a *.dll *.dll.a Changelog *.exe include man1 man3 cat1 cat3
+info "Testing $file"
+(cd ../.. ; zip -T "$file" ) || error_cleanup "errors in zipfile $file"
+cd ..
+
+# cleanup before exit
+cd "$tmpdir"
+rm -rf "$cdir"
+echo "done"
+# display
+ls -lG "$file"
diff --git a/net.c b/net.c
index 9e048d2cd822..57d4dff24dbe 100644
--- a/net.c
+++ b/net.c
@@ -198,11 +198,12 @@ ldns_tcp_connect_from(const struct sockaddr_storage *to, socklen_t tolen,
#ifndef S_SPLINT_S
if ((sockfd = socket((int)((struct sockaddr*)to)->sa_family, SOCK_STREAM,
IPPROTO_TCP)) == SOCK_INVALID) {
- return 0;
+ return -1;
}
#endif
if (from && bind(sockfd, (const struct sockaddr*)from, fromlen) == SOCK_INVALID){
- return 0;
+ close_socket(sockfd);
+ return -1;
}
/* perform nonblocking connect, to be able to wait with select() */
@@ -215,13 +216,13 @@ ldns_tcp_connect_from(const struct sockaddr_storage *to, socklen_t tolen,
if(1) {
#endif
close_socket(sockfd);
- return 0;
+ return -1;
}
#else /* USE_WINSOCK */
if(WSAGetLastError() != WSAEINPROGRESS &&
WSAGetLastError() != WSAEWOULDBLOCK) {
close_socket(sockfd);
- return 0;
+ return -1;
}
#endif
/* error was only telling us that it would block */
@@ -234,7 +235,7 @@ ldns_tcp_connect_from(const struct sockaddr_storage *to, socklen_t tolen,
if(!ldns_sock_wait(sockfd, timeout, 1)) {
close_socket(sockfd);
- return 0;
+ return -1;
}
/* check if there is a pending error for nonblocking connect */
@@ -255,7 +256,7 @@ ldns_tcp_connect_from(const struct sockaddr_storage *to, socklen_t tolen,
close_socket(sockfd);
/* error in errno for our user */
errno = error;
- return 0;
+ return -1;
}
#else /* USE_WINSOCK */
if(error == WSAEINPROGRESS)
@@ -265,7 +266,7 @@ ldns_tcp_connect_from(const struct sockaddr_storage *to, socklen_t tolen,
else if(error != 0) {
close_socket(sockfd);
errno = error;
- return 0;
+ return -1;
}
#endif /* USE_WINSOCK */
/* connected */
@@ -282,6 +283,14 @@ int
ldns_tcp_connect(const struct sockaddr_storage *to, socklen_t tolen,
struct timeval timeout)
{
+ int s = ldns_tcp_connect_from(to, tolen, NULL, 0, timeout);
+ return s > 0 ? s : 0;
+}
+
+int
+ldns_tcp_connect2(const struct sockaddr_storage *to, socklen_t tolen,
+ struct timeval timeout)
+{
return ldns_tcp_connect_from(to, tolen, NULL, 0, timeout);
}
@@ -295,13 +304,9 @@ ldns_tcp_bgsend_from(ldns_buffer *qbin,
sockfd = ldns_tcp_connect_from(to, tolen, from, fromlen, timeout);
- if (sockfd == 0) {
- return 0;
- }
-
- if (ldns_tcp_send_query(qbin, sockfd, to, tolen) == 0) {
+ if (sockfd >= 0 && ldns_tcp_send_query(qbin, sockfd, to, tolen) == 0) {
close_socket(sockfd);
- return 0;
+ return -1;
}
return sockfd;
@@ -312,9 +317,17 @@ ldns_tcp_bgsend(ldns_buffer *qbin,
const struct sockaddr_storage *to, socklen_t tolen,
struct timeval timeout)
{
- return ldns_tcp_bgsend_from(qbin, to, tolen, NULL, 0, timeout);
+ int s = ldns_tcp_bgsend_from(qbin, to, tolen, NULL, 0, timeout);
+ return s > 0 ? s : 0;
}
+int
+ldns_tcp_bgsend2(ldns_buffer *qbin,
+ const struct sockaddr_storage *to, socklen_t tolen,
+ struct timeval timeout)
+{
+ return ldns_tcp_bgsend_from(qbin, to, tolen, NULL, 0, timeout);
+}
/* keep in mind that in DNS tcp messages the first 2 bytes signal the
* amount data to expect
@@ -330,24 +343,19 @@ ldns_tcp_send_from(uint8_t **result, ldns_buffer *qbin,
sockfd = ldns_tcp_bgsend_from(qbin, to, tolen, from, fromlen, timeout);
- if (sockfd == 0) {
+ if (sockfd == -1) {
return LDNS_STATUS_ERR;
}
answer = ldns_tcp_read_wire_timeout(sockfd, answer_size, timeout);
close_socket(sockfd);
- if (*answer_size == 0) {
+ if (!answer) {
/* oops */
return LDNS_STATUS_NETWORK_ERR;
}
- /* resize accordingly */
- *result = LDNS_XREALLOC(answer, uint8_t, (size_t)*answer_size);
- if(!*result) {
- LDNS_FREE(answer);
- return LDNS_STATUS_MEM_ERR;
- }
+ *result = answer;
return LDNS_STATUS_OK;
}
@@ -368,13 +376,28 @@ ldns_udp_connect(const struct sockaddr_storage *to, struct timeval ATTR_UNUSED(t
#ifndef S_SPLINT_S
if ((sockfd = socket((int)((struct sockaddr*)to)->sa_family, SOCK_DGRAM,
IPPROTO_UDP))
- == -1) {
+ == SOCK_INVALID) {
return 0;
}
#endif
return sockfd;
}
+int
+ldns_udp_connect2(const struct sockaddr_storage *to, struct timeval ATTR_UNUSED(timeout))
+{
+ int sockfd;
+
+#ifndef S_SPLINT_S
+ if ((sockfd = socket((int)((struct sockaddr*)to)->sa_family, SOCK_DGRAM,
+ IPPROTO_UDP))
+ == SOCK_INVALID) {
+ return -1;
+ }
+#endif
+ return sockfd;
+}
+
static int
ldns_udp_bgsend_from(ldns_buffer *qbin,
const struct sockaddr_storage *to , socklen_t tolen,
@@ -383,19 +406,20 @@ ldns_udp_bgsend_from(ldns_buffer *qbin,
{
int sockfd;
- sockfd = ldns_udp_connect(to, timeout);
+ sockfd = ldns_udp_connect2(to, timeout);
- if (sockfd == 0) {
- return 0;
+ if (sockfd == -1) {
+ return -1;
}
if (from && bind(sockfd, (const struct sockaddr*)from, fromlen) == -1){
- return 0;
+ close_socket(sockfd);
+ return -1;
}
if (ldns_udp_send_query(qbin, sockfd, to, tolen) == 0) {
close_socket(sockfd);
- return 0;
+ return -1;
}
return sockfd;
}
@@ -405,6 +429,15 @@ ldns_udp_bgsend(ldns_buffer *qbin,
const struct sockaddr_storage *to , socklen_t tolen,
struct timeval timeout)
{
+ int s = ldns_udp_bgsend_from(qbin, to, tolen, NULL, 0, timeout);
+ return s > 0 ? s : 0;
+}
+
+int
+ldns_udp_bgsend2(ldns_buffer *qbin,
+ const struct sockaddr_storage *to , socklen_t tolen,
+ struct timeval timeout)
+{
return ldns_udp_bgsend_from(qbin, to, tolen, NULL, 0, timeout);
}
@@ -419,7 +452,7 @@ ldns_udp_send_from(uint8_t **result, ldns_buffer *qbin,
sockfd = ldns_udp_bgsend_from(qbin, to, tolen, from, fromlen, timeout);
- if (sockfd == 0) {
+ if (sockfd == -1) {
return LDNS_STATUS_SOCKET_ERROR;
}
@@ -430,14 +463,14 @@ ldns_udp_send_from(uint8_t **result, ldns_buffer *qbin,
}
/* set to nonblocking, so if the checksum is bad, it becomes
- * an EGAIN error and the ldns_udp_send function does not block,
+ * an EAGAIN error and the ldns_udp_send function does not block,
* but returns a 'NETWORK_ERROR' much like a timeout. */
ldns_sock_nonblock(sockfd);
answer = ldns_udp_read_wire(sockfd, answer_size, NULL, NULL);
close_socket(sockfd);
- if (*answer_size == 0) {
+ if (!answer) {
/* oops */
return LDNS_STATUS_NETWORK_ERR;
}
@@ -461,7 +494,7 @@ ldns_send_buffer(ldns_pkt **result, ldns_resolver *r, ldns_buffer *qb, ldns_rdf
uint8_t i;
struct sockaddr_storage *src = NULL;
- size_t src_len;
+ size_t src_len = 0;
struct sockaddr_storage *ns;
size_t ns_len;
struct timeval tv_s;
@@ -571,6 +604,9 @@ ldns_send_buffer(ldns_pkt **result, ldns_resolver *r, ldns_buffer *qb, ldns_rdf
if (!reply_bytes) {
/* the current nameserver seems to have a problem, blacklist it */
if (ldns_resolver_fail(r)) {
+ if(src) {
+ LDNS_FREE(src);
+ }
LDNS_FREE(ns);
return LDNS_STATUS_ERR;
} else {
@@ -581,10 +617,12 @@ ldns_send_buffer(ldns_pkt **result, ldns_resolver *r, ldns_buffer *qb, ldns_rdf
status = ldns_wire2pkt(&reply, reply_bytes, reply_size);
if (status != LDNS_STATUS_OK) {
+ if(src) LDNS_FREE(src);
LDNS_FREE(reply_bytes);
LDNS_FREE(ns);
return status;
}
+ assert(reply);
LDNS_FREE(ns);
gettimeofday(&tv_e, NULL);
@@ -676,9 +714,6 @@ ldns_udp_send_query(ldns_buffer *qbin, int sockfd, const struct sockaddr_storage
if (bytes == -1 || (size_t)bytes != ldns_buffer_position(qbin)) {
return 0;
}
- if ((size_t) bytes != ldns_buffer_position(qbin)) {
- return 0;
- }
return bytes;
}
@@ -918,6 +953,9 @@ ldns_axfr_start(ldns_resolver *resolver, const ldns_rdf *domain, ldns_rr_class c
src, (socklen_t)src_len,
ldns_resolver_timeout(resolver));
}
+ if (src) {
+ LDNS_FREE(src);
+ }
if (resolver->_socket == SOCK_INVALID) {
ldns_pkt_free(query);
diff --git a/packaging/fedora/ldns.spec b/packaging/fedora/ldns.spec
index 6658d011a000..9b02cfd26b11 100644
--- a/packaging/fedora/ldns.spec
+++ b/packaging/fedora/ldns.spec
@@ -23,7 +23,7 @@ BuildRequires: python-devel, swig
%endif
%description
-ldns is a library with the aim to simplify DNS programing in C. All
+ldns is a library with the aim to simplify DNS programming in C. All
lowlevel DNS/DNSSEC operations are supported. We also define a higher
level API which allows a programmer to (for instance) create or sign
packets.
@@ -125,7 +125,7 @@ rm -rf %{buildroot}
* Wed Jun 08 2011 Paul Wouters <paul@xelerance.com> - 1.6.10-1
- Updated to 1.6.10
-- commented out build dependancies for svn snapshots
+- commented out build dependencies for svn snapshots
* Sun Mar 27 2011 Paul Wouters <paul@xelerance.com> - 1.6.9-1
- Updated to 1.6.9
diff --git a/packaging/ldns-config.in b/packaging/ldns-config.in
index ffb2c57f3471..623f77e54ea4 100755
--- a/packaging/ldns-config.in
+++ b/packaging/ldns-config.in
@@ -4,26 +4,37 @@ prefix="@prefix@"
exec_prefix="@exec_prefix@"
VERSION="@PACKAGE_VERSION@"
CFLAGS="@CFLAGS@"
-CPPFLAGS="@CPPFLAGS@ @LIBSSL_CPPFLAGS@ @PYTHON_CPPFLAGS@"
-LDFLAGS="@LDFLAGS@ @LIBSSL_LDFLAGS@ @PYTHON_LDFLAGS@"
+CPPFLAGS="@CPPFLAGS@ @LIBSSL_CPPFLAGS@"
+LDFLAGS="@LDFLAGS@ @LIBSSL_LDFLAGS@"
+PYTHON_CPPFLAGS="@PYTHON_CPPFLAGS@"
+PYTHON_LDFLAGS="@PYTHON_LDFLAGS@"
LIBS="@LIBS@ @LIBSSL_LIBS@"
LIBDIR="@libdir@"
INCLUDEDIR="@includedir@"
LIBVERSION="@VERSION_INFO@"
+
for arg in $@
do
if [ $arg = "--cflags" ]
then
echo "-I${INCLUDEDIR}"
fi
+ if [ $arg = "--python-cflags" ]
+ then
+ echo "${PYTHON_CPPFLAGS} -I${INCLUDEDIR}"
+ fi
if [ $arg = "--libs" ]
then
echo "${LDFLAGS} -L${LIBDIR} ${LIBS} -lldns"
fi
+ if [ $arg = "--python-libs" ]
+ then
+ echo "${LDFLAGS} ${PYTHON_LDFLAGS} -L${LIBDIR} ${LIBS} -lldns"
+ fi
if [ $arg = "-h" ] || [ $arg = "--help" ]
then
- echo "Usage: $0 [--cflags] [--libs] [--version]"
+ echo "Usage: $0 [--cflags] [--python-cflags] [--libs] [--python-libs] [--version]"
fi
if [ $arg = "--version" ]
then
diff --git a/packet.c b/packet.c
index 95f8f3fe4d24..afa59005c3bd 100644
--- a/packet.c
+++ b/packet.c
@@ -26,6 +26,7 @@
*/
#define LDNS_EDNS_MASK_DO_BIT 0x8000
+#define LDNS_EDNS_MASK_UNASSIGNED (0xFFFF & ~LDNS_EDNS_MASK_DO_BIT)
/* TODO defines for 3600 */
/* convert to and from numerical flag values */
@@ -242,6 +243,19 @@ ldns_pkt_set_edns_do(ldns_pkt *packet, bool value)
}
}
+uint16_t
+ldns_pkt_edns_unassigned(const ldns_pkt *packet)
+{
+ return (packet->_edns_z & LDNS_EDNS_MASK_UNASSIGNED);
+}
+
+void
+ldns_pkt_set_edns_unassigned(ldns_pkt *packet, uint16_t value)
+{
+ packet->_edns_z = (packet->_edns_z & ~LDNS_EDNS_MASK_UNASSIGNED)
+ | (value & LDNS_EDNS_MASK_UNASSIGNED);
+}
+
ldns_rdf *
ldns_pkt_edns_data(const ldns_pkt *packet)
{
@@ -375,6 +389,7 @@ ldns_pkt_rr(const ldns_pkt *pkt, ldns_pkt_section sec, const ldns_rr *rr)
return ldns_rr_list_contains_rr(ldns_pkt_additional(pkt), rr);
case LDNS_SECTION_ANY:
result = ldns_rr_list_contains_rr(ldns_pkt_question(pkt), rr);
+ /* fallthrough */
case LDNS_SECTION_ANY_NOQUESTION:
result = result
|| ldns_rr_list_contains_rr(ldns_pkt_answer(pkt), rr)
@@ -624,6 +639,15 @@ ldns_pkt_set_edns_data(ldns_pkt *packet, ldns_rdf *data)
}
void
+ldns_pkt_set_edns_option_list(ldns_pkt *packet, ldns_edns_option_list *list)
+{
+ if (packet->_edns_list)
+ ldns_edns_option_list_deep_free(packet->_edns_list);
+ packet->_edns_list = list;
+}
+
+
+void
ldns_pkt_set_section_count(ldns_pkt *packet, ldns_pkt_section s, uint16_t count)
{
switch(s) {
@@ -723,15 +747,93 @@ ldns_pkt_safe_push_rr_list(ldns_pkt *p, ldns_pkt_section s, ldns_rr_list *list)
}
bool
-ldns_pkt_edns(const ldns_pkt *pkt) {
+ldns_pkt_edns(const ldns_pkt *pkt)
+{
return (ldns_pkt_edns_udp_size(pkt) > 0 ||
ldns_pkt_edns_extended_rcode(pkt) > 0 ||
ldns_pkt_edns_data(pkt) ||
ldns_pkt_edns_do(pkt) ||
+ pkt->_edns_list ||
pkt->_edns_present
);
}
+ldns_edns_option_list*
+pkt_edns_data2edns_option_list(const ldns_rdf *edns_data)
+{
+ size_t pos = 0;
+ ldns_edns_option_list* edns_list;
+ size_t max;
+ const uint8_t* wire;
+
+ if (!edns_data)
+ return NULL;
+
+ max = ldns_rdf_size(edns_data);
+ wire = ldns_rdf_data(edns_data);
+ if (!max)
+ return NULL;
+
+ if (!(edns_list = ldns_edns_option_list_new()))
+ return NULL;
+
+ while (pos < max) {
+ ldns_edns_option* edns;
+ uint8_t *data;
+
+ if (pos + 4 > max) { /* make sure the header is */
+ ldns_edns_option_list_deep_free(edns_list);
+ return NULL;
+ }
+ ldns_edns_option_code code = ldns_read_uint16(&wire[pos]);
+ size_t size = ldns_read_uint16(&wire[pos+2]);
+ pos += 4;
+
+ if (pos + size > max) { /* make sure the size fits the data */
+ ldns_edns_option_list_deep_free(edns_list);
+ return NULL;
+ }
+ data = LDNS_XMALLOC(uint8_t, size);
+
+ if (!data) {
+ ldns_edns_option_list_deep_free(edns_list);
+ return NULL;
+ }
+ memcpy(data, &wire[pos], size);
+ pos += size;
+
+ edns = ldns_edns_new(code, size, data);
+
+ if (!edns) {
+ ldns_edns_option_list_deep_free(edns_list);
+ return NULL;
+ }
+ if (!ldns_edns_option_list_push(edns_list, edns)) {
+ ldns_edns_option_list_deep_free(edns_list);
+ return NULL;
+ }
+ }
+ return edns_list;
+
+}
+
+ldns_edns_option_list*
+ldns_pkt_edns_get_option_list(ldns_pkt *packet)
+{
+ /* return the list if it already exists */
+ if (packet->_edns_list != NULL)
+ return packet->_edns_list;
+
+ /* if the list doesn't exists, we create it by parsing the
+ * packet->_edns_data
+ */
+ if (!ldns_pkt_edns_data(packet))
+ return NULL;
+
+ return ( packet->_edns_list
+ = pkt_edns_data2edns_option_list(ldns_pkt_edns_data(packet)));
+}
+
/* Create/destroy/convert functions
*/
@@ -781,8 +883,9 @@ ldns_pkt_new(void)
ldns_pkt_set_edns_version(packet, 0);
ldns_pkt_set_edns_z(packet, 0);
ldns_pkt_set_edns_data(packet, NULL);
+ packet->_edns_list = NULL;
packet->_edns_present = false;
-
+
ldns_pkt_set_tsig(packet, NULL);
return packet;
@@ -799,6 +902,7 @@ ldns_pkt_free(ldns_pkt *packet)
ldns_rr_list_deep_free(packet->_additional);
ldns_rr_free(packet->_tsig_rr);
ldns_rdf_deep_free(packet->_edns_data);
+ ldns_edns_option_list_deep_free(packet->_edns_list);
ldns_rdf_deep_free(packet->_answerfrom);
LDNS_FREE(packet);
}
@@ -928,11 +1032,13 @@ ldns_pkt_query_new_frm_str_internal(ldns_pkt **p, const char *name,
}
if (!ldns_pkt_set_flags(packet, flags)) {
+ ldns_pkt_free(packet);
return LDNS_STATUS_ERR;
}
question_rr = ldns_rr_new();
if (!question_rr) {
+ ldns_pkt_free(packet);
return LDNS_STATUS_MEM_ERR;
}
@@ -1146,6 +1252,9 @@ ldns_pkt_clone(const ldns_pkt *pkt)
ldns_pkt_set_edns_data(new_pkt,
ldns_rdf_clone(ldns_pkt_edns_data(pkt)));
ldns_pkt_set_edns_do(new_pkt, ldns_pkt_edns_do(pkt));
+ if (pkt->_edns_list)
+ ldns_pkt_set_edns_option_list(new_pkt,
+ ldns_edns_option_list_clone(pkt->_edns_list));
ldns_rr_list_deep_free(new_pkt->_question);
ldns_rr_list_deep_free(new_pkt->_answer);
diff --git a/parse.c b/parse.c
index e68627c25a72..9698ba71e881 100644
--- a/parse.c
+++ b/parse.c
@@ -27,31 +27,45 @@ ldns_fget_token(FILE *f, char *token, const char *delim, size_t limit)
return ldns_fget_token_l(f, token, delim, limit, NULL);
}
-ssize_t
-ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr)
+ldns_status
+ldns_fget_token_l_st(FILE *f, char **token, size_t *limit, bool fixed
+ , const char *delim, int *line_nr)
{
int c, prev_c;
- int p; /* 0 -> no parenthese seen, >0 nr of ( seen */
+ int p; /* 0 -> no parentheses seen, >0 nr of ( seen */
int com, quoted;
- char *t;
+ char *t, *old_token;
size_t i;
const char *d;
const char *del;
- /* standard delimeters */
+ /* standard delimiters */
if (!delim) {
/* from isspace(3) */
del = LDNS_PARSE_NORMAL;
} else {
del = delim;
}
+ if (!token || !limit)
+ return LDNS_STATUS_NULL;
+ if (fixed) {
+ if (*token == NULL || *limit == 0)
+ return LDNS_STATUS_NULL;
+
+ } else if (*token == NULL) {
+ *limit = LDNS_MAX_LINELEN;
+ if (!(*token = LDNS_XMALLOC(char, *limit + 1)))
+ return LDNS_STATUS_MEM_ERR;
+
+ } else if (*limit == 0)
+ return LDNS_STATUS_ERR;
p = 0;
i = 0;
com = 0;
quoted = 0;
prev_c = 0;
- t = token;
+ t = *token;
if (del[0] == '"') {
quoted = 1;
}
@@ -79,7 +93,8 @@ ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *li
if (p < 0) {
/* more ) then ( - close off the string */
*t = '\0';
- return 0;
+ return i == 0 ? LDNS_STATUS_SYNTAX_EMPTY
+ : LDNS_STATUS_OK;
}
/* do something with comments ; */
@@ -113,11 +128,28 @@ ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *li
continue;
}
- if (c == '\n' && p != 0 && t > token) {
+ if (c == '\n' && p != 0 && t > *token) {
/* in parentheses */
if (line_nr) {
*line_nr = *line_nr + 1;
}
+ if (*limit > 0
+ && (i >= *limit || (size_t)(t - *token) >= *limit)) {
+ if (fixed) {
+ *t = '\0';
+ return LDNS_STATUS_SYNTAX_ERR;
+ }
+ old_token = *token;
+ *limit *= 2;
+ *token = LDNS_XREALLOC(*token, char, *limit + 1);
+ if (*token == NULL) {
+ *token = old_token;
+ *t = '\0';
+ return LDNS_STATUS_MEM_ERR;
+ }
+ if (*token != old_token)
+ t = *token + (t - old_token);
+ }
*t++ = ' ';
prev_c = c;
continue;
@@ -135,30 +167,42 @@ ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *li
if (c != '\0' && c != '\n') {
i++;
}
- if (limit > 0 && (i >= limit || (size_t)(t-token) >= limit)) {
- *t = '\0';
- return -1;
+ if (*limit > 0
+ && (i >= *limit || (size_t)(t - *token) >= *limit)) {
+ if (fixed) {
+ *t = '\0';
+ return LDNS_STATUS_SYNTAX_ERR;
+ }
+ old_token = *token;
+ *limit *= 2;
+ *token = LDNS_XREALLOC(*token, char, *limit + 1);
+ if (*token == NULL) {
+ *token = old_token;
+ *t = '\0';
+ return LDNS_STATUS_MEM_ERR;
+ }
+ if (*token != old_token)
+ t = *token + (t - old_token);
}
if (c != '\0' && c != '\n') {
*t++ = c;
}
+ if (c == '\n' && line_nr) {
+ *line_nr = *line_nr + 1;
+ }
if (c == '\\' && prev_c == '\\')
prev_c = 0;
else prev_c = c;
}
*t = '\0';
if (c == EOF) {
- return (ssize_t)i;
+ return i == 0 ? LDNS_STATUS_SYNTAX_EMPTY : LDNS_STATUS_OK;
}
- if (i == 0) {
- /* nothing read */
- return -1;
- }
if (p != 0) {
- return -1;
+ return LDNS_STATUS_SYNTAX_ERR;
}
- return (ssize_t)i;
+ return i == 0 ? LDNS_STATUS_SYNTAX_EMPTY : LDNS_STATUS_OK;
tokenread:
if(*del == '"') /* do not skip over quotes, they are significant */
@@ -166,10 +210,21 @@ tokenread:
else ldns_fskipcs_l(f, del, line_nr);
*t = '\0';
if (p != 0) {
- return -1;
+ return LDNS_STATUS_SYNTAX_ERR;
}
+ return i == 0 ? LDNS_STATUS_SYNTAX_EMPTY : LDNS_STATUS_OK;
+}
- return (ssize_t)i;
+
+ssize_t
+ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr)
+{
+ if (limit == 0)
+ limit = LDNS_MAX_LINELEN;
+ if (ldns_fget_token_l_st(f, &token, &limit, true, delim, line_nr))
+ return -1;
+ else
+ return (ssize_t)strlen(token);
}
ssize_t
@@ -219,7 +274,7 @@ ssize_t
ldns_bget_token(ldns_buffer *b, char *token, const char *delim, size_t limit)
{
int c, lc;
- int p; /* 0 -> no parenthese seen, >0 nr of ( seen */
+ int p; /* 0 -> no parentheses seen, >0 nr of ( seen */
int com, quoted;
char *t;
size_t i;
diff --git a/radix.c b/radix.c
index 43f73653d29a..9695e137baa4 100644
--- a/radix.c
+++ b/radix.c
@@ -225,9 +225,9 @@ ldns_radix_insert(ldns_radix_t* tree, uint8_t* key, radix_strlen_t len,
}
} else if (pos == len) {
/** Exact match found */
+ LDNS_FREE(add);
if (prefix->data) {
/* Element already exists */
- LDNS_FREE(add);
return LDNS_STATUS_EXISTS_ERR;
}
prefix->data = data;
@@ -1120,12 +1120,15 @@ ldns_radix_array_split(ldns_radix_array_t* array, uint8_t* key,
if (array->len - common_len > 1) {
if (!ldns_radix_prefix_remainder(common_len+1,
array->str, array->len, &s1, &l1)) {
+ LDNS_FREE(common);
return 0;
}
}
if (strlen_to_add - common_len > 1) {
if (!ldns_radix_prefix_remainder(common_len+1,
str_to_add, strlen_to_add, &s2, &l2)) {
+ LDNS_FREE(common);
+ LDNS_FREE(s1);
return 0;
}
}
diff --git a/rbtree.c b/rbtree.c
index 01ae9c704263..d43081a1b5f9 100644
--- a/rbtree.c
+++ b/rbtree.c
@@ -71,7 +71,7 @@ static void ldns_rbtree_insert_fixup(ldns_rbtree_t *rbtree, ldns_rbnode_t *node)
static void ldns_rbtree_delete_fixup(ldns_rbtree_t* rbtree, ldns_rbnode_t* child, ldns_rbnode_t* child_parent);
/*
- * Creates a new red black tree, intializes and returns a pointer to it.
+ * Creates a new red black tree, initializes and returns a pointer to it.
*
* Return NULL on failure.
*
diff --git a/rdata.c b/rdata.c
index 3bc4b391e339..3f899a217eb7 100644
--- a/rdata.c
+++ b/rdata.c
@@ -360,6 +360,12 @@ ldns_rdf_new_frm_str(ldns_rdf_type type, const char *str)
case LDNS_RDF_TYPE_MATCHING_TYPE:
status = ldns_str2rdf_matching_type(&rdf, str);
break;
+ case LDNS_RDF_TYPE_AMTRELAY:
+ status = ldns_str2rdf_amtrelay(&rdf, str);
+ break;
+ case LDNS_RDF_TYPE_SVCPARAMS:
+ status = ldns_str2rdf_svcparams(&rdf, str);
+ break;
case LDNS_RDF_TYPE_NONE:
default:
/* default default ??? */
@@ -618,7 +624,7 @@ ldns_octet(char *word, size_t *length)
return LDNS_STATUS_DDD_OVERFLOW;
}
} else {
- /* an espaced character, like \<space> ?
+ /* an escaped character, like \<space> ?
* remove the '\' keep the rest */
*p = *++s;
(*length)++;
diff --git a/resolver.c b/resolver.c
index 79f502588a99..f9ec65a55966 100644
--- a/resolver.c
+++ b/resolver.c
@@ -764,7 +764,7 @@ ldns_resolver_new_frm_fp(ldns_resolver **res, FILE *fp)
ldns_status
ldns_resolver_new_frm_fp_l(ldns_resolver **res, FILE *fp, int *line_nr)
{
- ldns_resolver *r;
+ ldns_resolver *r = NULL;
const char *keyword[LDNS_RESOLV_KEYWORDS];
char word[LDNS_MAX_LINELEN + 1];
int8_t expect;
@@ -780,7 +780,7 @@ ldns_resolver_new_frm_fp_l(ldns_resolver **res, FILE *fp, int *line_nr)
if(!line_nr) line_nr = &lnr;
if(!fp) {
- myfp = fopen("/etc/resolv.conf", "r");
+ myfp = fopen(LDNS_RESOLV_CONF, "r");
if(!myfp)
return LDNS_STATUS_FILE_ERR;
}
@@ -800,7 +800,6 @@ ldns_resolver_new_frm_fp_l(ldns_resolver **res, FILE *fp, int *line_nr)
keyword[LDNS_RESOLV_SORTLIST] = "sortlist";
keyword[LDNS_RESOLV_OPTIONS] = "options";
keyword[LDNS_RESOLV_ANCHOR] = "anchor";
- expect = LDNS_RESOLV_KEYWORD;
r = ldns_resolver_new();
if (!r) {
@@ -860,6 +859,7 @@ ldns_resolver_new_frm_fp_l(ldns_resolver **res, FILE *fp, int *line_nr)
gtr = ldns_fget_token_l(myfp, word, LDNS_PARSE_NORMAL, 0, line_nr);
if (gtr == 0) {
if(!fp) fclose(myfp);
+ ldns_resolver_deep_free(r);
return LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR;
}
if(word[0] == '#') {
@@ -868,8 +868,8 @@ ldns_resolver_new_frm_fp_l(ldns_resolver **res, FILE *fp, int *line_nr)
}
tmp = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME, word);
if (!tmp) {
- ldns_resolver_deep_free(r);
if(!fp) fclose(myfp);
+ ldns_resolver_deep_free(r);
return LDNS_STATUS_SYNTAX_DNAME_ERR;
}
@@ -882,6 +882,7 @@ ldns_resolver_new_frm_fp_l(ldns_resolver **res, FILE *fp, int *line_nr)
gtr = ldns_fget_token_l(myfp, word, LDNS_PARSE_NORMAL, 0, line_nr);
if (gtr == 0) {
if(!fp) fclose(myfp);
+ ldns_resolver_deep_free(r);
return LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR;
}
if(word[0] == '#') {
@@ -1108,7 +1109,8 @@ ldns_resolver_search_status(ldns_pkt** pkt,
s = ldns_resolver_query_status(pkt, r,
new_name, t, c, flags);
- ldns_rdf_free(new_name);
+ ldns_rdf_deep_free(new_name);
+
if (pkt && *pkt) {
if (s == LDNS_STATUS_OK &&
ldns_pkt_get_rcode(*pkt) ==
@@ -1132,6 +1134,7 @@ ldns_resolver_search(const ldns_resolver *r,const ldns_rdf *name,
if (ldns_resolver_search_status(&pkt, (ldns_resolver *)r,
name, t, c, flags) != LDNS_STATUS_OK) {
ldns_pkt_free(pkt);
+ return NULL;
}
return pkt;
}
@@ -1165,6 +1168,7 @@ ldns_resolver_query(const ldns_resolver *r, const ldns_rdf *name,
if (ldns_resolver_query_status(&pkt, (ldns_resolver *)r,
name, t, c, flags) != LDNS_STATUS_OK) {
ldns_pkt_free(pkt);
+ return NULL;
}
return pkt;
}
@@ -1178,6 +1182,7 @@ ldns_resolver_backup_rtt(ldns_resolver *r)
if (old_rtt && ldns_resolver_nameserver_count(r)) {
new_rtt = LDNS_XMALLOC(size_t
, ldns_resolver_nameserver_count(r));
+ if (!new_rtt) return NULL;
memcpy(new_rtt, old_rtt, sizeof(size_t)
* ldns_resolver_nameserver_count(r));
ldns_resolver_set_rtt(r, new_rtt);
@@ -1240,6 +1245,7 @@ ldns_resolver_send_pkt(ldns_pkt **answer, ldns_resolver *r,
ldns_pkt_tc(answer_pkt)) {
ldns_resolver_set_usevc(r, true);
ldns_pkt_free(answer_pkt);
+ answer_pkt = NULL;
stat = ldns_send(&answer_pkt, r, query_pkt);
ldns_resolver_set_usevc(r, false);
}
@@ -1247,7 +1253,7 @@ ldns_resolver_send_pkt(ldns_pkt **answer, ldns_resolver *r,
}
}
- if (answer) {
+ if (answer && answer_pkt) {
*answer = answer_pkt;
}
@@ -1528,14 +1534,14 @@ void
ldns_axfr_abort(ldns_resolver *resolver)
{
/* Only abort if an actual AXFR is in progress */
- if (resolver->_socket != 0)
+ if (resolver->_socket != -1)
{
#ifndef USE_WINSOCK
close(resolver->_socket);
#else
closesocket(resolver->_socket);
#endif
- resolver->_socket = 0;
+ resolver->_socket = -1;
}
}
diff --git a/rr.c b/rr.c
index c971610e96bf..95ab71d34946 100644
--- a/rr.c
+++ b/rr.c
@@ -20,6 +20,12 @@
#define LDNS_TTL_DATALEN 21
#define LDNS_RRLIST_INIT 8
+#define _IS_WHITESPACE(chr) \
+ ( NULL != strchr( LDNS_PARSE_NO_NL, chr) )
+
+#define _BUFFER_IS_AT_WHITESPACE(rd_buf) \
+ _IS_WHITESPACE(*(ldns_buffer_current(rd_buf)))
+
ldns_rr *
ldns_rr_new(void)
{
@@ -111,8 +117,9 @@ ldns_rdf_type_maybe_quoted(ldns_rdf_type rdf_type)
*/
static ldns_status
ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
- uint32_t default_ttl, const ldns_rdf *origin,
- ldns_rdf **prev, bool question)
+ uint32_t default_ttl, const ldns_rdf *origin,
+ ldns_rdf **prev, bool question,
+ bool *explicit_ttl)
{
ldns_rr *new;
const ldns_rr_descriptor *desc;
@@ -125,6 +132,7 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
ldns_rr_class clas_val;
char *clas = NULL;
char *type = NULL;
+ size_t type_sz;
char *rdata = NULL;
char *rd = NULL;
char *xtok = NULL; /* For RDF types with spaces (i.e. extra tokens) */
@@ -197,6 +205,9 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
} else {
ttl_val = default_ttl;
}
+ if (explicit_ttl)
+ *explicit_ttl = false;
+
/* we not ASSUMING the TTL is missing and that
* the rest of the RR is still there. That is
* CLASS TYPE RDATA
@@ -208,13 +219,17 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
*/
if (clas_val == 0) {
clas_val = LDNS_RR_CLASS_IN;
- type = LDNS_XMALLOC(char, strlen(ttl) + 1);
+ type_sz = strlen(ttl) + 1;
+ type = LDNS_XMALLOC(char, type_sz);
if (!type) {
goto memerror;
}
- strncpy(type, ttl, strlen(ttl) + 1);
+ strlcpy(type, ttl, type_sz);
}
} else {
+ if (explicit_ttl)
+ *explicit_ttl = true;
+
if (-1 == ldns_bget_token(
rr_buf, clas, "\t\n ", LDNS_SYNTAX_DATALEN)) {
@@ -227,11 +242,12 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
*/
if (clas_val == 0) {
clas_val = LDNS_RR_CLASS_IN;
- type = LDNS_XMALLOC(char, strlen(clas) + 1);
+ type_sz = strlen(clas) + 1;
+ type = LDNS_XMALLOC(char, type_sz);
if (!type) {
goto memerror;
}
- strncpy(type, clas, strlen(clas) + 1);
+ strlcpy(type, clas, type_sz);
}
}
/* the rest should still be waiting for us */
@@ -256,7 +272,7 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
}
ldns_buffer_new_frm_data(rd_buf, rdata, strlen(rdata));
- if (strlen(owner) <= 1 && strncmp(owner, "@", 1) == 0) {
+ if (strncmp(owner, "@", 1) == 0) {
if (origin) {
ldns_rr_set_owner(new, ldns_rdf_clone(origin));
} else if (prev && *prev) {
@@ -344,13 +360,16 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
switch (ldns_rr_descriptor_field_type(desc, r_cnt)) {
case LDNS_RDF_TYPE_B64 :
case LDNS_RDF_TYPE_HEX : /* These rdf types may con- */
- case LDNS_RDF_TYPE_LOC : /* tain whitespace, only if */
- case LDNS_RDF_TYPE_WKS : /* it is the last rd field. */
+ case LDNS_RDF_TYPE_NSEC : /* tain whitespace, only if */
+ case LDNS_RDF_TYPE_LOC : /* it is the last rd field. */
+ case LDNS_RDF_TYPE_WKS :
case LDNS_RDF_TYPE_IPSECKEY :
- case LDNS_RDF_TYPE_NSEC : if (r_cnt == r_max - 1) {
+ case LDNS_RDF_TYPE_AMTRELAY :
+ case LDNS_RDF_TYPE_SVCPARAMS : if (r_cnt == r_max - 1) {
delimiters = "\n";
break;
}
+ /* fallthrough */
default : delimiters = "\n\t ";
}
@@ -359,16 +378,19 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
desc, r_cnt)) &&
ldns_buffer_remaining(rd_buf) > 0){
- /* skip spaces */
- while (*(ldns_buffer_current(rd_buf)) == ' ') {
+ /* skip whitespace */
+ while (ldns_buffer_remaining(rd_buf) > 0 &&
+ _BUFFER_IS_AT_WHITESPACE(rd_buf)) {
ldns_buffer_skip(rd_buf, 1);
}
- if (*(ldns_buffer_current(rd_buf)) == '\"') {
+ if (ldns_buffer_remaining(rd_buf) > 0 &&
+ *(ldns_buffer_current(rd_buf)) == '\"') {
delimiters = "\"\0";
ldns_buffer_skip(rd_buf, 1);
quoted = true;
- } else if (ldns_rr_descriptor_field_type(desc, r_cnt)
+ }
+ if (!quoted && ldns_rr_descriptor_field_type(desc, r_cnt)
== LDNS_RDF_TYPE_LONG_STR) {
status = LDNS_STATUS_SYNTAX_RDATA_ERR;
@@ -380,9 +402,9 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
* _maximum() only
*/
- /* skip spaces */
+ /* skip whitespace */
while (ldns_buffer_position(rd_buf) < ldns_buffer_limit(rd_buf)
- && *(ldns_buffer_current(rd_buf)) == ' '
+ && _BUFFER_IS_AT_WHITESPACE(rd_buf)
&& !quoted) {
ldns_buffer_skip(rd_buf, 1);
@@ -393,6 +415,7 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
rd_buf, rd, delimiters, LDNS_MAX_RDFLEN))) {
done = true;
+ (void)done; /* we're breaking, so done not read anymore */
break;
}
/* hmmz, rfc3597 specifies that any type can be represented
@@ -403,7 +426,7 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
/* unknown RR data */
if (strncmp(rd, "\\#", 2) == 0 && !quoted &&
- (rd_strlen == 2 || rd[2]==' ')) {
+ (rd_strlen == 2 || _IS_WHITESPACE(rd[2]))) {
was_unknown_rr_format = 1;
/* go back to before \#
@@ -432,18 +455,18 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
while(cur_hex_data_size < 2 * hex_data_size) {
c = ldns_bget_token(rd_buf, rd,
delimiters, LDNS_MAX_RDFLEN);
- if (c != -1) {
- rd_strlen = strlen(rd);
+ if (c == -1) {
+ status = LDNS_STATUS_SYNTAX_RDATA_ERR;
+ goto error;
}
- if (c == -1 ||
- (size_t)cur_hex_data_size + rd_strlen >
+ rd_strlen = strlen(rd);
+ if ((size_t)cur_hex_data_size + rd_strlen >
2 * (size_t)hex_data_size) {
-
status = LDNS_STATUS_SYNTAX_RDATA_ERR;
goto error;
}
- strncpy(hex_data_str + cur_hex_data_size, rd,
- rd_strlen);
+ strlcpy(hex_data_str + cur_hex_data_size, rd,
+ rd_strlen + 1);
cur_hex_data_size += rd_strlen;
}
@@ -573,10 +596,12 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
LDNS_RDF_TYPE_DNAME, ".")
);
- } else if (r && rd_strlen >= 1 && origin &&
- !ldns_dname_str_absolute(rd)) {
+ } else if (r && rd_strlen >= 1
+ && (origin || rr_type == LDNS_RR_TYPE_SOA)
+ && !ldns_dname_str_absolute(rd)) {
- status = ldns_dname_cat(r, origin);
+ status = ldns_dname_cat(r, origin
+ ? origin : ldns_rr_owner(new));
if (status != LDNS_STATUS_OK) {
goto error;
}
@@ -594,14 +619,6 @@ ldns_rr_new_frm_str_internal(ldns_rr **newrr, const char *str,
}
ldns_rr_push_rdf(new, r);
}
- if (quoted) {
- if (ldns_buffer_available(rd_buf, 1)) {
- ldns_buffer_skip(rd_buf, 1);
- } else {
- done = true;
- }
- }
-
} /* for (done = false, r_cnt = 0; !done && r_cnt < r_max; r_cnt++) */
LDNS_FREE(rd);
LDNS_FREE(xtok);
@@ -665,7 +682,8 @@ ldns_rr_new_frm_str(ldns_rr **newrr, const char *str,
default_ttl,
origin,
prev,
- false);
+ false,
+ NULL);
}
ldns_status
@@ -677,7 +695,8 @@ ldns_rr_new_question_frm_str(ldns_rr **newrr, const char *str,
0,
origin,
prev,
- true);
+ true,
+ NULL);
}
/* Strip whitespace from the start and the end of <line>. */
@@ -703,43 +722,28 @@ ldns_rr_new_frm_fp(ldns_rr **newrr, FILE *fp, uint32_t *ttl, ldns_rdf **origin,
}
ldns_status
-ldns_rr_new_frm_fp_l(ldns_rr **newrr, FILE *fp, uint32_t *default_ttl, ldns_rdf **origin, ldns_rdf **prev, int *line_nr)
+_ldns_rr_new_frm_fp_l_internal(ldns_rr **newrr, FILE *fp,
+ uint32_t *default_ttl, ldns_rdf **origin, ldns_rdf **prev,
+ int *line_nr, bool *explicit_ttl)
{
- char *line;
+ char *line = NULL;
+ size_t limit = 0;
const char *endptr; /* unused */
ldns_rr *rr;
uint32_t ttl;
ldns_rdf *tmp;
ldns_status s;
- ssize_t size;
if (default_ttl) {
ttl = *default_ttl;
} else {
ttl = 0;
}
-
- line = LDNS_XMALLOC(char, LDNS_MAX_LINELEN + 1);
- if (!line) {
- return LDNS_STATUS_MEM_ERR;
- }
-
/* read an entire line in from the file */
- if ((size = ldns_fget_token_l(fp, line, LDNS_PARSE_SKIP_SPACE, LDNS_MAX_LINELEN, line_nr)) == -1) {
- LDNS_FREE(line);
- /* if last line was empty, we are now at feof, which is not
- * always a parse error (happens when for instance last line
- * was a comment)
- */
- return LDNS_STATUS_SYNTAX_ERR;
- }
-
- /* we can have the situation, where we've read ok, but still got
- * no bytes to play with, in this case size is 0
- */
- if (size == 0) {
+ if ((s = ldns_fget_token_l_st( fp, &line, &limit, false
+ , LDNS_PARSE_SKIP_SPACE, line_nr))) {
LDNS_FREE(line);
- return LDNS_STATUS_SYNTAX_EMPTY;
+ return s;
}
if (strncmp(line, "$ORIGIN", 7) == 0 && isspace((unsigned char)line[7])) {
@@ -769,9 +773,11 @@ ldns_rr_new_frm_fp_l(ldns_rr **newrr, FILE *fp, uint32_t *default_ttl, ldns_rdf
return LDNS_STATUS_SYNTAX_EMPTY;
} else {
if (origin && *origin) {
- s = ldns_rr_new_frm_str(&rr, (const char*) line, ttl, *origin, prev);
+ s = ldns_rr_new_frm_str_internal(&rr, (const char*)line,
+ ttl, *origin, prev, false, explicit_ttl);
} else {
- s = ldns_rr_new_frm_str(&rr, (const char*) line, ttl, NULL, prev);
+ s = ldns_rr_new_frm_str_internal(&rr, (const char*)line,
+ ttl, NULL, prev, false, explicit_ttl);
}
}
LDNS_FREE(line);
@@ -786,6 +792,14 @@ ldns_rr_new_frm_fp_l(ldns_rr **newrr, FILE *fp, uint32_t *default_ttl, ldns_rdf
return s;
}
+ldns_status
+ldns_rr_new_frm_fp_l(ldns_rr **newrr, FILE *fp, uint32_t *default_ttl,
+ ldns_rdf **origin, ldns_rdf **prev, int *line_nr)
+{
+ return _ldns_rr_new_frm_fp_l_internal(newrr, fp, default_ttl, origin,
+ prev, line_nr, NULL);
+}
+
void
ldns_rr_set_owner(ldns_rr *rr, ldns_rdf *owner)
{
@@ -830,7 +844,7 @@ ldns_rr_set_rdf(ldns_rr *rr, const ldns_rdf *f, size_t position)
rd_count = ldns_rr_rd_count(rr);
if (position < rd_count) {
- /* dicard the old one */
+ /* discard the old one */
pop = rr->_rdata_fields[position];
rr->_rdata_fields[position] = (ldns_rdf*)f;
return pop;
@@ -1184,6 +1198,7 @@ ldns_rr_list_pop_rr(ldns_rr_list *rr_list)
rr_list->_rrs = a;
rr_list->_rr_capacity = cap;
}
+ /* if the realloc fails, the capacity for the list remains unchanged */
}
ldns_rr_list_set_rr_count(rr_list, rr_count - 1);
@@ -1311,7 +1326,7 @@ ldns_rr_set_push_rr(ldns_rr_list *rr_list, ldns_rr *rr)
return false;
}
/* ok, still alive - check if the rr already
- * exists - if so, dont' add it */
+ * exists - if so, don't add it */
for(i = 0; i < rr_count; i++) {
if(ldns_rr_compare(
ldns_rr_list_rr(rr_list, i), rr) == 0) {
@@ -1958,6 +1973,17 @@ static const ldns_rdf_type type_openpgpkey_wireformat[] = {
static const ldns_rdf_type type_csync_wireformat[] = {
LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_NSEC
};
+static const ldns_rdf_type type_zonemd_wireformat[] = {
+ LDNS_RDF_TYPE_INT32,
+ LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_HEX
+};
+#ifdef RRTYPE_SVCB_HTTPS
+static const ldns_rdf_type type_svcb_wireformat[] = {
+ LDNS_RDF_TYPE_INT16,
+ LDNS_RDF_TYPE_DNAME,
+ LDNS_RDF_TYPE_SVCPARAMS
+};
+#endif
/* nsec3 is some vars, followed by same type of data of nsec */
static const ldns_rdf_type type_nsec3_wireformat[] = {
/* LDNS_RDF_TYPE_NSEC3_VARS, LDNS_RDF_TYPE_NSEC3_NEXT_OWNER, LDNS_RDF_TYPE_NSEC*/
@@ -2037,6 +2063,22 @@ static const ldns_rdf_type type_caa_wireformat[] = {
LDNS_RDF_TYPE_TAG,
LDNS_RDF_TYPE_LONG_STR
};
+#ifdef RRTYPE_DOA
+static const ldns_rdf_type type_doa_wireformat[] = {
+ LDNS_RDF_TYPE_INT32,
+ LDNS_RDF_TYPE_INT32,
+ LDNS_RDF_TYPE_INT8,
+ LDNS_RDF_TYPE_STR,
+ LDNS_RDF_TYPE_B64
+};
+#endif
+#ifdef RRTYPE_AMTRELAY
+static const ldns_rdf_type type_amtrelay_wireformat[] = {
+ LDNS_RDF_TYPE_AMTRELAY
+};
+#endif
+
+
/** \endcond */
/** \cond */
@@ -2188,11 +2230,20 @@ static ldns_rr_descriptor rdata_field_descriptors[] = {
#else
{LDNS_RR_TYPE_NULL, "TYPE61", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
#endif
+ /* 62 */
+ {LDNS_RR_TYPE_CSYNC, "CSYNC", 3, 3, type_csync_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+ /* 63 */
+ {LDNS_RR_TYPE_ZONEMD, "ZONEMD", 4, 4, type_zonemd_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#ifdef RRTYPE_SVCB_HTTPS
+ /* 64 */
+ {LDNS_RR_TYPE_SVCB, "SVCB", 2, 3, type_svcb_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
+ /* 65 */
+ {LDNS_RR_TYPE_HTTPS, "HTTPS", 2, 3, type_svcb_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
-{LDNS_RR_TYPE_CSYNC, "CSYNC", 3, 3, type_csync_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
-{LDNS_RR_TYPE_NULL, "TYPE63", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#else
{LDNS_RR_TYPE_NULL, "TYPE64", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
{LDNS_RR_TYPE_NULL, "TYPE65", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#endif
{LDNS_RR_TYPE_NULL, "TYPE66", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
{LDNS_RR_TYPE_NULL, "TYPE67", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
{LDNS_RR_TYPE_NULL, "TYPE68", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
@@ -2425,6 +2476,18 @@ static ldns_rr_descriptor rdata_field_descriptors[] = {
#else
{LDNS_RR_TYPE_NULL, "TYPE258", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
#endif
+#ifdef RRTYPE_DOA
+ /* 259 */
+ {LDNS_RR_TYPE_DOA, "DOA", 5, 5, type_doa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#else
+{LDNS_RR_TYPE_NULL, "TYPE259", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#endif
+#ifdef RRTYPE_AMTRELAY
+ /* 260 */
+ {LDNS_RR_TYPE_AMTRELAY, "AMTRELAY", 1, 1, type_amtrelay_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#else
+{LDNS_RR_TYPE_NULL, "TYPE260", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
+#endif
/* split in array, no longer contiguous */
@@ -2450,7 +2513,7 @@ static ldns_rr_descriptor rdata_field_descriptors[] = {
/*---------------------------------------------------------------------------*
* The functions below return an bitmap RDF with the space required to set
* or unset all known RR types. Arguably these functions are better situated
- * in rdata.c, however for the space calculation it is necesarry to walk
+ * in rdata.c, however for the space calculation it is necessary to walk
* through rdata_field_descriptors which is not easily possible from anywhere
* other than rr.c where it is declared static.
*
@@ -2528,10 +2591,10 @@ ldns_rdf_bitmap_known_rr_types_set(ldns_rdf** rdf, int value)
/* Format rdf data according RFC3845 Section 2.1.2 (see above)
*/
dptr = data = LDNS_XMALLOC(uint8_t, sz);
- memset(data, value, sz);
if (!data) {
return LDNS_STATUS_MEM_ERR;
}
+ memset(data, value, sz);
for (i = 0; i < 256; i++) {
if (windows[i]) {
*dptr++ = (uint8_t)i;
diff --git a/rr_functions.c b/rr_functions.c
index 20a0bfaa1aa3..b9b9eae5be72 100644
--- a/rr_functions.c
+++ b/rr_functions.c
@@ -24,7 +24,7 @@
* return a specific rdf
* \param[in] type type of RR
* \param[in] rr the rr itself
- * \param[in] pos at which postion to get it
+ * \param[in] pos at which position to get it
* \return the rdf sought
*/
static ldns_rdf *
@@ -41,7 +41,7 @@ ldns_rr_function(ldns_rr_type type, const ldns_rr *rr, size_t pos)
* \param[in] type type of RR
* \param[in] rr the rr itself
* \param[in] rdf the rdf to set
- * \param[in] pos at which postion to set it
+ * \param[in] pos at which position to set it
* \return true or false
*/
static bool
@@ -269,14 +269,17 @@ ldns_rr_dnskey_key_size_raw(const unsigned char* keydata,
const size_t len,
const ldns_algorithm alg)
{
+#ifdef USE_DSA
/* for DSA keys */
uint8_t t;
+#endif /* USE_DSA */
/* for RSA keys */
uint16_t exp;
uint16_t int16;
switch ((ldns_signing_algorithm)alg) {
+#ifdef USE_DSA
case LDNS_SIGN_DSA:
case LDNS_SIGN_DSA_NSEC3:
if (len > 0) {
@@ -286,6 +289,7 @@ ldns_rr_dnskey_key_size_raw(const unsigned char* keydata,
return 0;
}
break;
+#endif /* USE_DSA */
case LDNS_SIGN_RSAMD5:
case LDNS_SIGN_RSASHA1:
case LDNS_SIGN_RSASHA1_NSEC3:
diff --git a/sha1.c b/sha1.c
index 18a4dd28f34e..9b7e60ece090 100644
--- a/sha1.c
+++ b/sha1.c
@@ -97,6 +97,7 @@ ldns_sha1_transform(uint32_t state[5], const unsigned char buffer[LDNS_SHA1_BLOC
state[4] += e;
/* Wipe variables */
a = b = c = d = e = 0;
+ (void)a;
}
@@ -167,7 +168,7 @@ ldns_sha1_final(unsigned char digest[LDNS_SHA1_DIGEST_LENGTH], ldns_sha1_ctx *co
}
unsigned char *
-ldns_sha1(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha1(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha1_ctx ctx;
ldns_sha1_init(&ctx);
diff --git a/sha2.c b/sha2.c
index 9a27122bfe1e..8988ee06d04b 100644
--- a/sha2.c
+++ b/sha2.c
@@ -73,7 +73,7 @@
* Please make sure that your system defines BYTE_ORDER. If your
* architecture is little-endian, make sure it also defines
* LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are
- * equivilent.
+ * equivalent.
*
* If your system does not define the above, then you can do so by
* hand like this:
@@ -494,6 +494,7 @@ static void ldns_sha256_Transform(ldns_sha256_CTX* context,
/* Clean up */
a = b = c = d = e = f = g = h = T1 = T2 = 0;
+ (void)a;
}
#endif /* SHA2_UNROLL_TRANSFORM */
@@ -527,6 +528,7 @@ void ldns_sha256_update(ldns_sha256_CTX* context, const sha2_byte *data, size_t
context->bitcount += len << 3;
/* Clean up: */
usedspace = freespace = 0;
+ (void)usedspace;
return;
}
}
@@ -544,6 +546,7 @@ void ldns_sha256_update(ldns_sha256_CTX* context, const sha2_byte *data, size_t
}
/* Clean up: */
usedspace = freespace = 0;
+ (void)usedspace;
}
typedef union _ldns_sha2_buffer_union {
@@ -551,7 +554,7 @@ typedef union _ldns_sha2_buffer_union {
uint64_t* theLongs;
} ldns_sha2_buffer_union;
-void ldns_sha256_final(sha2_byte digest[], ldns_sha256_CTX* context) {
+void ldns_sha256_final(sha2_byte digest[LDNS_SHA256_DIGEST_LENGTH], ldns_sha256_CTX* context) {
sha2_word32 *d = (sha2_word32*)digest;
size_t usedspace;
ldns_sha2_buffer_union cast_var;
@@ -614,10 +617,11 @@ void ldns_sha256_final(sha2_byte digest[], ldns_sha256_CTX* context) {
/* Clean up state data: */
MEMSET_BZERO(context, sizeof(ldns_sha256_CTX));
usedspace = 0;
+ (void)usedspace;
}
unsigned char *
-ldns_sha256(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha256(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha256_CTX ctx;
ldns_sha256_init(&ctx);
@@ -803,6 +807,7 @@ static void ldns_sha512_Transform(ldns_sha512_CTX* context,
/* Clean up */
a = b = c = d = e = f = g = h = T1 = T2 = 0;
+ (void)a;
}
#endif /* SHA2_UNROLL_TRANSFORM */
@@ -836,6 +841,7 @@ void ldns_sha512_update(ldns_sha512_CTX* context, const sha2_byte *data, size_t
ADDINC128(context->bitcount, len << 3);
/* Clean up: */
usedspace = freespace = 0;
+ (void)usedspace;
return;
}
}
@@ -853,6 +859,7 @@ void ldns_sha512_update(ldns_sha512_CTX* context, const sha2_byte *data, size_t
}
/* Clean up: */
usedspace = freespace = 0;
+ (void)usedspace;
}
static void ldns_sha512_Last(ldns_sha512_CTX* context) {
@@ -898,7 +905,7 @@ static void ldns_sha512_Last(ldns_sha512_CTX* context) {
ldns_sha512_Transform(context, (sha2_word64*)context->buffer);
}
-void ldns_sha512_final(sha2_byte digest[], ldns_sha512_CTX* context) {
+void ldns_sha512_final(sha2_byte digest[LDNS_SHA512_DIGEST_LENGTH], ldns_sha512_CTX* context) {
sha2_word64 *d = (sha2_word64*)digest;
/* Sanity check: */
@@ -928,7 +935,7 @@ void ldns_sha512_final(sha2_byte digest[], ldns_sha512_CTX* context) {
}
unsigned char *
-ldns_sha512(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha512(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha512_CTX ctx;
ldns_sha512_init(&ctx);
@@ -951,7 +958,7 @@ void ldns_sha384_update(ldns_sha384_CTX* context, const sha2_byte* data, size_t
ldns_sha512_update((ldns_sha512_CTX*)context, data, len);
}
-void ldns_sha384_final(sha2_byte digest[], ldns_sha384_CTX* context) {
+void ldns_sha384_final(sha2_byte digest[LDNS_SHA384_DIGEST_LENGTH], ldns_sha384_CTX* context) {
sha2_word64 *d = (sha2_word64*)digest;
/* Sanity check: */
@@ -981,7 +988,7 @@ void ldns_sha384_final(sha2_byte digest[], ldns_sha384_CTX* context) {
}
unsigned char *
-ldns_sha384(unsigned char *data, unsigned int data_len, unsigned char *digest)
+ldns_sha384(const unsigned char *data, unsigned int data_len, unsigned char *digest)
{
ldns_sha384_CTX ctx;
ldns_sha384_init(&ctx);
diff --git a/str2host.c b/str2host.c
index c396f54792b9..5b78e5bc5907 100644
--- a/str2host.c
+++ b/str2host.c
@@ -57,13 +57,13 @@ ldns_status
ldns_str2rdf_time(ldns_rdf **rd, const char *time)
{
/* convert a time YYYYDDMMHHMMSS to wireformat */
- uint16_t *r = NULL;
+ uint32_t *r = NULL;
struct tm tm;
uint32_t l;
char *end;
/* Try to scan the time... */
- r = (uint16_t*)LDNS_MALLOC(uint32_t);
+ r = (uint32_t *)LDNS_MALLOC(uint32_t);
if(!r) return LDNS_STATUS_MEM_ERR;
memset(&tm, 0, sizeof(tm));
@@ -197,10 +197,10 @@ ldns_status
ldns_str2rdf_int32(ldns_rdf **rd, const char *longstr)
{
char *end;
- uint16_t *r = NULL;
+ uint32_t *r = NULL;
uint32_t l;
- r = (uint16_t*)LDNS_MALLOC(uint32_t);
+ r = (uint32_t*)LDNS_MALLOC(uint32_t);
if(!r) return LDNS_STATUS_MEM_ERR;
errno = 0; /* must set to zero before call,
note race condition on errno */
@@ -304,7 +304,7 @@ parse_char(uint8_t *ch_p, const char** str_p)
/*
* No special care is taken, all dots are translated into
- * label seperators.
+ * label separators.
* Could be made more efficient....we do 3 memcpy's in total...
*/
ldns_status
@@ -344,7 +344,7 @@ ldns_str2rdf_dname(ldns_rdf **d, const char *str)
pq = buf;
label_len = 0;
for (s = str; *s; s++, q++) {
- if (q > buf + LDNS_MAX_DOMAINLEN) {
+ if (q >= buf + LDNS_MAX_DOMAINLEN) {
return LDNS_STATUS_DOMAINNAME_OVERFLOW;
}
*q = 0;
@@ -378,7 +378,7 @@ ldns_str2rdf_dname(ldns_rdf **d, const char *str)
/* add root label if last char was not '.' */
if (!ldns_dname_str_absolute(str)) {
- if (q > buf + LDNS_MAX_DOMAINLEN) {
+ if (q >= buf + LDNS_MAX_DOMAINLEN) {
return LDNS_STATUS_DOMAINNAME_OVERFLOW;
}
if (label_len > LDNS_MAX_LABELLEN) {
@@ -445,6 +445,7 @@ ldns_str2rdf_str(ldns_rdf **rd, const char *str)
*++dp = ch;
}
if (! str) {
+ LDNS_FREE(data);
return LDNS_STATUS_SYNTAX_BAD_ESCAPE;
}
length = (size_t)(dp - data);
@@ -584,6 +585,11 @@ ldns_str2rdf_b64(ldns_rdf **rd, const char *str)
uint8_t *buffer;
int16_t i;
+ if ((*str == '-' || *str == '0') && str[1] == '\0') {
+ *rd = ldns_rdf_new_frm_data(LDNS_RDF_TYPE_B64, 0, NULL);
+ return *rd ? LDNS_STATUS_OK : LDNS_STATUS_MEM_ERR;
+ }
+
buffer = LDNS_XMALLOC(uint8_t, ldns_b64_ntop_calculate_size(strlen(str)));
if(!buffer) {
return LDNS_STATUS_MEM_ERR;
@@ -609,15 +615,19 @@ ldns_str2rdf_b32_ext(ldns_rdf **rd, const char *str)
uint8_t *buffer;
int i;
/* first byte contains length of actual b32 data */
- uint8_t len = ldns_b32_pton_calculate_size(strlen(str));
+ size_t slen = strlen(str);
+ size_t len = ldns_b32_pton_calculate_size(slen);
+ if (len > 255) {
+ return LDNS_STATUS_INVALID_B32_EXT;
+ }
buffer = LDNS_XMALLOC(uint8_t, len + 1);
if(!buffer) {
return LDNS_STATUS_MEM_ERR;
}
buffer[0] = len;
- i = ldns_b32_pton_extended_hex((const char*)str, strlen(str), buffer + 1,
- ldns_b32_ntop_calculate_size(strlen(str)));
+ i = ldns_b32_pton_extended_hex((const char*)str, slen, buffer + 1,
+ ldns_b32_ntop_calculate_size(slen));
if (i < 0) {
LDNS_FREE(buffer);
return LDNS_STATUS_INVALID_B32_EXT;
@@ -869,13 +879,16 @@ loc_parse_cm(char* my_str, char** endstr, uint8_t* m, uint8_t* e)
/* read <digits>[.<digits>][mM] */
/* into mantissa exponent format for LOC type */
uint32_t meters = 0, cm = 0, val;
+ char* cm_endstr;
while (isblank((unsigned char)*my_str)) {
my_str++;
}
meters = (uint32_t)strtol(my_str, &my_str, 10);
if (*my_str == '.') {
my_str++;
- cm = (uint32_t)strtol(my_str, &my_str, 10);
+ cm = (uint32_t)strtol(my_str, &cm_endstr, 10);
+ if (cm_endstr - my_str == 1) cm *= 10;
+ my_str = cm_endstr;
}
if (meters >= 1) {
*e = 2;
@@ -916,8 +929,8 @@ ldns_str2rdf_loc(ldns_rdf **rd, const char *str)
uint8_t vert_pre_b = 1, vert_pre_e = 3;
double s = 0.0;
- bool northerness;
- bool easterness;
+ bool northern_hemisphere;
+ bool eastern_hemisphere;
char *my_str = (char *) str;
@@ -953,9 +966,9 @@ north:
}
if (*my_str == 'N') {
- northerness = true;
+ northern_hemisphere = true;
} else if (*my_str == 'S') {
- northerness = false;
+ northern_hemisphere = false;
} else {
return LDNS_STATUS_INVALID_STR;
}
@@ -969,7 +982,7 @@ north:
latitude = (uint32_t) s;
latitude += 1000 * 60 * m;
latitude += 1000 * 60 * 60 * h;
- if (northerness) {
+ if (northern_hemisphere) {
latitude = equator + latitude;
} else {
latitude = equator - latitude;
@@ -1010,9 +1023,9 @@ east:
}
if (*my_str == 'E') {
- easterness = true;
+ eastern_hemisphere = true;
} else if (*my_str == 'W') {
- easterness = false;
+ eastern_hemisphere = false;
} else {
return LDNS_STATUS_INVALID_STR;
}
@@ -1027,7 +1040,7 @@ east:
longitude += 1000 * 60 * m;
longitude += 1000 * 60 * 60 * h;
- if (easterness) {
+ if (eastern_hemisphere) {
longitude += equator;
} else {
longitude = equator - longitude;
@@ -1088,7 +1101,10 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
ldns_buffer *str_buf;
char *proto_str = NULL;
+ char *lc_proto_str = NULL;
char *token;
+ char *lc_token;
+ char *c;
if(strlen(str) == 0)
token = LDNS_XMALLOC(char, 50);
else token = LDNS_XMALLOC(char, strlen(str)+2);
@@ -1106,7 +1122,13 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
while(ldns_bget_token(str_buf, token, "\t\n ", strlen(str)) > 0) {
if (!proto_str) {
proto_str = strdup(token);
- if (!proto_str) {
+ lc_proto_str = strdup(token);
+ for (c = lc_proto_str; *c; c++) {
+ *c = tolower((unsigned char)*c);
+ }
+ if (!proto_str || !lc_proto_str) {
+ free(proto_str);
+ free(lc_proto_str);
LDNS_FREE(bitmap);
LDNS_FREE(token);
ldns_buffer_free(str_buf);
@@ -1114,11 +1136,32 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
}
} else {
serv = getservbyname(token, proto_str);
+ if (!serv) {
+ serv = getservbyname(token, lc_proto_str);
+ }
+ if (!serv && (lc_token = strdup(token))) {
+ for (c = lc_token; *c; c++) {
+ *c = tolower((unsigned char)*c);
+ }
+ serv = getservbyname(lc_token, proto_str);
+ if (!serv) {
+ serv = getservbyname(lc_token, lc_proto_str);
+ }
+ free(lc_token);
+ }
if (serv) {
serv_port = (int) ntohs((uint16_t) serv->s_port);
} else {
serv_port = atoi(token);
}
+ if (serv_port < 0 || serv_port > 65535) {
+ LDNS_FREE(bitmap);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ free(proto_str);
+ free(lc_proto_str);
+ return LDNS_STATUS_INVALID_STR;
+ }
if (serv_port / 8 >= bm_len) {
uint8_t *b2 = LDNS_XREALLOC(bitmap, uint8_t, (serv_port / 8) + 1);
if(!b2) {
@@ -1126,6 +1169,7 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
LDNS_FREE(token);
ldns_buffer_free(str_buf);
free(proto_str);
+ free(lc_proto_str);
return LDNS_STATUS_INVALID_STR;
}
bitmap = b2;
@@ -1143,6 +1187,7 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
LDNS_FREE(token);
ldns_buffer_free(str_buf);
free(proto_str);
+ free(lc_proto_str);
return LDNS_STATUS_INVALID_STR;
}
@@ -1152,10 +1197,14 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
ldns_buffer_free(str_buf);
LDNS_FREE(bitmap);
free(proto_str);
+ free(lc_proto_str);
return LDNS_STATUS_INVALID_STR;
}
if (proto_str)
proto = getprotobyname(proto_str);
+ if (!proto) {
+ proto = getprotobyname(lc_proto_str);
+ }
if (proto) {
data[0] = (uint8_t) proto->p_proto;
} else if (proto_str) {
@@ -1170,6 +1219,7 @@ ldns_str2rdf_wks(ldns_rdf **rd, const char *str)
ldns_buffer_free(str_buf);
LDNS_FREE(bitmap);
free(proto_str);
+ free(lc_proto_str);
#ifdef HAVE_ENDSERVENT
endservent();
#endif
@@ -1300,6 +1350,8 @@ ldns_str2rdf_ipseckey(ldns_rdf **rd, const char *str)
status = ldns_str2rdf_aaaa(&gateway_rdf, gateway);
} else if (gateway_type == 3) {
status = ldns_str2rdf_dname(&gateway_rdf, gateway);
+ } else if (gateway_type > 3) {
+ status = LDNS_STATUS_INVALID_STR;
}
if (status != LDNS_STATUS_OK) {
@@ -1366,8 +1418,8 @@ ldns_str2rdf_ipseckey(ldns_rdf **rd, const char *str)
LDNS_FREE(publickey);
LDNS_FREE(token);
ldns_buffer_free(str_buf);
- ldns_rdf_free(gateway_rdf);
- ldns_rdf_free(publickey_rdf);
+ ldns_rdf_deep_free(gateway_rdf);
+ ldns_rdf_deep_free(publickey_rdf);
LDNS_FREE(data);
if(!*rd) return LDNS_STATUS_MEM_ERR;
return LDNS_STATUS_OK;
@@ -1494,17 +1546,23 @@ ldns_str2rdf_long_str(ldns_rdf **rd, const char *str)
}
}
if (! str) {
+ LDNS_FREE(data);
return LDNS_STATUS_SYNTAX_BAD_ESCAPE;
}
- length = (size_t)(dp - data);
-
- /* Lose the overmeasure */
- data = LDNS_XREALLOC(dp = data, uint8_t, length);
- if (! data) {
- LDNS_FREE(dp);
- return LDNS_STATUS_MEM_ERR;
+ if (!(length = (size_t)(dp - data))) {
+ /* An empty string is a data buffer of 0 bytes. The rdf for
+ * this long string has to have length 0 and point to NULL.
+ */
+ LDNS_FREE(data);
+ data = NULL;
+ } else {
+ /* Lose the overmeasure */
+ data = LDNS_XREALLOC(dp = data, uint8_t, length);
+ if (! data) {
+ LDNS_FREE(dp);
+ return LDNS_STATUS_MEM_ERR;
+ }
}
-
/* Create rdf */
*rd = ldns_rdf_new(LDNS_RDF_TYPE_LONG_STR, length, data);
if (! *rd) {
@@ -1517,17 +1575,17 @@ ldns_str2rdf_long_str(ldns_rdf **rd, const char *str)
ldns_status
ldns_str2rdf_hip(ldns_rdf **rd, const char *str)
{
- const char *hit = strchr(str, ' ') + 1;
- const char *pk = hit == NULL ? NULL : strchr(hit, ' ') + 1;
+ const char *hit = str == NULL ? NULL : strchr(str, ' ');
+ const char *pk = hit == NULL ? NULL : strchr(hit + 1, ' ');
size_t hit_size = hit == NULL ? 0
- : pk == NULL ? strlen(hit) : (size_t) (pk - hit) - 1;
- size_t pk_size = pk == NULL ? 0 : strlen(pk);
+ : pk == NULL ? strlen(hit + 1) : (size_t) (pk - hit) - 1;
+ size_t pk_size = pk == NULL ? 0 : strlen(pk + 1);
size_t hit_wire_size = (hit_size + 1) / 2;
size_t pk_wire_size = ldns_b64_pton_calculate_size(pk_size);
size_t rdf_size = 4 + hit_wire_size + pk_wire_size;
char *endptr; /* utility var for strtol usage */
- int algorithm = strtol(str, &endptr, 10);
+ int algorithm = str == NULL ? 0 : strtol(str, &endptr, 10);
uint8_t *data, *dp;
int hi, lo, written;
@@ -1540,6 +1598,8 @@ ldns_str2rdf_hip(ldns_rdf **rd, const char *str)
return LDNS_STATUS_SYNTAX_ERR;
}
+ hit += 1;
+ pk += 1;
if ((data = LDNS_XMALLOC(uint8_t, rdf_size)) == NULL) {
return LDNS_STATUS_MEM_ERR;
@@ -1605,3 +1665,773 @@ ldns_str2rdf_hip(ldns_rdf **rd, const char *str)
}
return LDNS_STATUS_OK;
}
+
+
+/* Implementation mimics ldns_str2rdf_ipseckey */
+ldns_status
+ldns_str2rdf_amtrelay(ldns_rdf **rd, const char *str)
+{
+ /* From draft-ietf-mboned-driad-amt-discovery
+ * Section 4.2. AMTRELAY RData Format
+ *************************************************
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | precedence |D| type | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+ ~ relay ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */
+
+ uint8_t precedence = 0;
+ uint8_t relay_type = 0;
+ uint8_t discovery_optional = 0;
+ char* relay = NULL;
+ uint8_t *data;
+ ldns_buffer *str_buf;
+ char *token;
+ int token_count = 0;
+ int amtrelay_len = 0;
+ ldns_rdf* relay_rdf = NULL;
+ ldns_status status = LDNS_STATUS_OK;
+
+ if(strlen(str) == 0)
+ token = LDNS_XMALLOC(char, 256);
+ else token = LDNS_XMALLOC(char, strlen(str)+2);
+ if(!token) return LDNS_STATUS_MEM_ERR;
+
+ str_buf = LDNS_MALLOC(ldns_buffer);
+ if(!str_buf) {LDNS_FREE(token); return LDNS_STATUS_MEM_ERR;}
+ ldns_buffer_new_frm_data(str_buf, (char *)str, strlen(str));
+ if(ldns_buffer_status(str_buf) != LDNS_STATUS_OK) {
+ LDNS_FREE(str_buf);
+ LDNS_FREE(token);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ while(ldns_bget_token(str_buf, token, "\t\n ", strlen(str)) > 0) {
+ switch (token_count) {
+ case 0:
+ precedence = (uint8_t)atoi(token);
+ break;
+ case 1:
+ discovery_optional = (uint8_t)atoi(token);
+ if (discovery_optional != 0 &&
+ discovery_optional != 1) {
+ LDNS_FREE(relay);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ return LDNS_STATUS_INVALID_STR;
+ }
+ break;
+ case 2:
+ relay_type = (uint8_t)atoi(token);
+ break;
+ case 3:
+ relay = strdup(token);
+ if (!relay || (relay_type == 0 &&
+ (token[0] != '.' || token[1] != '\0'))) {
+ LDNS_FREE(relay);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ return LDNS_STATUS_INVALID_STR;
+ }
+ break;
+ default:
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ return LDNS_STATUS_INVALID_STR;
+ break;
+ }
+ token_count++;
+ }
+ if (!relay && relay_type > 0) {
+ if (relay)
+ LDNS_FREE(relay);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ return LDNS_STATUS_INVALID_STR;
+ }
+
+ if (relay_type == 1) {
+ status = ldns_str2rdf_a(&relay_rdf, relay);
+ } else if (relay_type == 2) {
+ status = ldns_str2rdf_aaaa(&relay_rdf, relay);
+ } else if (relay_type == 3) {
+ status = ldns_str2rdf_dname(&relay_rdf, relay);
+ } else if (relay_type > 3) {
+ status = LDNS_STATUS_INVALID_STR;
+ }
+
+ if (status != LDNS_STATUS_OK) {
+ if (relay)
+ LDNS_FREE(relay);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ return LDNS_STATUS_INVALID_STR;
+ }
+
+ /* now copy all into one amtrelay rdf */
+ if (relay_type)
+ amtrelay_len = 2 + (int)ldns_rdf_size(relay_rdf);
+ else
+ amtrelay_len = 2;
+
+ data = LDNS_XMALLOC(uint8_t, amtrelay_len);
+ if(!data) {
+ if (relay)
+ LDNS_FREE(relay);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ if (relay_rdf) ldns_rdf_free(relay_rdf);
+ return LDNS_STATUS_MEM_ERR;
+ }
+
+ data[0] = precedence;
+ data[1] = relay_type;
+ data[1] |= (discovery_optional << 7);
+
+ if (relay_type) {
+ memcpy(data + 2,
+ ldns_rdf_data(relay_rdf), ldns_rdf_size(relay_rdf));
+ }
+ *rd = ldns_rdf_new_frm_data( LDNS_RDF_TYPE_AMTRELAY
+ , (uint16_t) amtrelay_len, data);
+
+ if (relay)
+ LDNS_FREE(relay);
+ LDNS_FREE(token);
+ ldns_buffer_free(str_buf);
+ ldns_rdf_free(relay_rdf);
+ LDNS_FREE(data);
+ if(!*rd) return LDNS_STATUS_MEM_ERR;
+ return LDNS_STATUS_OK;
+}
+
+#ifdef RRTYPE_SVCB_HTTPS
+static int
+network_uint16_cmp(const void *a, const void *b)
+{
+ return ((int)ldns_read_uint16(a)) - ((int)ldns_read_uint16(b));
+}
+
+static ldns_status parse_svcparam_key(const char **s, ldns_svcparam_key *key);
+static ldns_status
+parse_svcparam_mandatory(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ bool quoted = false;
+ uint8_t *keys = *dp;
+ int prev_key;
+
+ if (**s == '"') {
+ *s += 1;
+ quoted = true;
+ }
+ for (;;) {
+ ldns_status st;
+ ldns_svcparam_key key;
+
+ if ((st = parse_svcparam_key(s, &key)))
+ return st;
+
+ if (*dp + 2 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ ldns_write_uint16(*dp, key);
+ *dp += 2;
+
+ if (**s == ',')
+ *s += 1;
+ else
+ break;
+ }
+ if (quoted) {
+ if (**s != '"')
+ return LDNS_STATUS_INVALID_STR;
+ *s += 1;
+ }
+ if (*dp - keys == 0)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ if (**s && !isspace((unsigned char)**s))
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ /* In draft-ietf-dnsop-svcb-https-02 Section 7:
+ *
+ * In wire format, the keys are represented by their numeric
+ * values in network byte order, concatenated in ascending order.
+ */
+ qsort(keys, (*dp - keys) / 2, 2, network_uint16_cmp);
+
+ /* In draft-ietf-dnsop-svcb-https-02 Section 7:
+ *
+ * Keys ...<snip>... MUST NOT appear more than once.
+ */
+ prev_key = -1;
+ while (keys < *dp) {
+ uint16_t key = ldns_read_uint16(keys);
+
+ if (key == prev_key) {
+ /* "Be conservative in what you send,
+ * be liberal in what you accept"
+ *
+ * Instead of
+ * `return LDNS_STATUS_SVCPARAM_KEY_MORE_THAN_ONCE;`,
+ *
+ * we eliminate the double occurrence.
+ */
+ memmove(keys - 2, keys, *dp - keys);
+ *dp -= 2;
+ } else {
+ prev_key = key;
+ keys += 2;
+ }
+ }
+ return LDNS_STATUS_OK;
+}
+
+INLINE bool parse_escape2(uint8_t *ch_p, const char** str_p)
+{ *str_p += 1; return parse_escape(ch_p, str_p); }
+
+static ldns_status
+parse_svcparam_alpn(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ uint8_t *val;
+ size_t len;
+
+ if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+ *dp += 1;
+ val = *dp;
+ if (**s == '"') {
+ *s += 1;
+ while (**s != '"') {
+ if (**s == 0)
+ return LDNS_STATUS_INVALID_STR;
+
+ else if (**s == ',') {
+ len = *dp - val;
+ if (len == 0 || len > 255)
+ return LDNS_STATUS_INVALID_STR;
+ val[-1] = len;
+ if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+ *dp += 1;
+ val = *dp;
+ *s += 1;
+
+ } else if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ else if (**s != '\\')
+ *(*dp)++ = (uint8_t)*(*s)++;
+
+ else if (!parse_escape2(*dp, s))
+ return LDNS_STATUS_SYNTAX_BAD_ESCAPE;
+ else
+ *dp += 1;
+ }
+ *s += 1;
+
+ } else while (**s && !isspace((unsigned char)**s)) {
+ if (**s == ',') {
+ len = *dp - val;
+ if (len == 0 || len > 255)
+ return LDNS_STATUS_INVALID_STR;
+ val[-1] = len;
+ if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+ *dp += 1;
+ val = *dp;
+ *s += 1;
+
+ } else if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ else if (**s != '\\')
+ *(*dp)++ = (uint8_t)*(*s)++;
+
+ else if (!parse_escape2(*dp, s))
+ return LDNS_STATUS_SYNTAX_BAD_ESCAPE;
+ else
+ *dp += 1;
+ }
+ len = *dp - val;
+ if (len == 0 || len > 255)
+ return LDNS_STATUS_INVALID_STR;
+ val[-1] = len;
+ return **s && !isspace((unsigned char)**s)
+ ? LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR
+ : LDNS_STATUS_OK;
+}
+
+static ldns_status
+parse_svcparam_value(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ if (**s == '"') {
+ *s += 1;
+ while (**s != '"') {
+ if (**s == 0)
+ return LDNS_STATUS_INVALID_STR;
+
+ else if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ else if (**s != '\\')
+ *(*dp)++ = (uint8_t)*(*s)++;
+
+ else if (!parse_escape2(*dp, s))
+ return LDNS_STATUS_SYNTAX_BAD_ESCAPE;
+ else
+ *dp += 1;
+ }
+ *s += 1;
+
+ } else while (**s && !isspace((unsigned char)**s)) {
+ if (*dp + 1 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ else if (**s != '\\')
+ *(*dp)++ = (uint8_t)*(*s)++;
+
+ else if (!parse_escape2(*dp, s))
+ return LDNS_STATUS_SYNTAX_BAD_ESCAPE;
+ else
+ *dp += 1;
+ }
+ return **s && !isspace((unsigned char)**s)
+ ? LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR
+ : LDNS_STATUS_OK;
+}
+
+static ldns_status
+parse_svcparam_port(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ uint8_t *val = *dp;
+ ldns_status st;
+ size_t len;
+ char num_str[6];
+ char *endptr;
+ unsigned long int num;
+
+ if ((st = parse_svcparam_value(s, dp, eod)))
+ return st;
+ len = *dp - val;
+ if (len == 0 || len > 5)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ memcpy(num_str, val, len);
+ num_str[len] = 0;
+ num = strtoul(num_str, &endptr, 10);
+ if (*endptr)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ ldns_write_uint16(val, num);
+ *dp = val + 2;
+ return LDNS_STATUS_OK;
+}
+
+static ldns_status
+parse_svcparam_ipv4hint(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ bool quoted = false;
+
+ if (**s == '"') {
+ *s += 1;
+ quoted = true;
+ }
+ for (;;) {
+ const char *ipv4_start = *s;
+ char ipv4_str[16];
+ size_t len;
+
+ while (isdigit((unsigned char)**s) || **s == '.')
+ *s += 1;
+
+ len = *s - ipv4_start;
+ if (len == 0 || len > 15)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ if (*dp + 4 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ memcpy(ipv4_str, ipv4_start, len);
+ ipv4_str[len] = 0;
+ if (inet_pton(AF_INET, ipv4_str, *dp) != 1)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ *dp += 4;
+ if (**s == ',')
+ *s += 1;
+ else
+ break;
+ }
+ if (quoted) {
+ if (**s != '"')
+ return LDNS_STATUS_INVALID_STR;
+ *s += 1;
+ }
+ return **s && !isspace((unsigned char)**s)
+ ? LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR
+ : LDNS_STATUS_OK;
+}
+
+static ldns_status
+parse_svcparam_ech(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ bool quoted = false;
+ const char *b64_str;
+ size_t len, pad, out_len;
+ char in_buf[4096];
+ char *in = in_buf;
+ int out;
+
+ if (**s == '"') {
+ *s += 1;
+ quoted = true;
+ }
+ b64_str = *s;
+ while (isalnum((unsigned char)**s) || **s == '+'
+ || **s == '/'
+ || **s == '=')
+ *s += 1;
+
+ len = *s - b64_str;
+ pad = len % 4;
+ pad = pad ? 4 - pad : 0;
+ if (len == 0 || pad == 3)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ if (quoted) {
+ if (**s != '"')
+ return LDNS_STATUS_INVALID_STR;
+ *s += 1;
+ }
+ if (**s && !isspace((unsigned char)**s))
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ out_len = ldns_b64_pton_calculate_size(len);
+ if (*dp + out_len > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ if (len + pad > sizeof(in_buf) - 1
+ && !(in = LDNS_XMALLOC(char, len + pad + 1)))
+ return LDNS_STATUS_MEM_ERR;
+
+ memcpy(in, b64_str, len);
+ while (pad--)
+ in[len++] = '=';
+ in[len] = 0;
+ out = ldns_b64_pton(in, *dp, out_len);
+ if (in != in_buf)
+ LDNS_FREE(in);
+
+ if (out <= 0)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ *dp += out;
+ return LDNS_STATUS_OK;
+}
+
+static ldns_status
+parse_svcparam_ipv6hint(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ bool quoted = false;
+
+ if (**s == '"') {
+ *s += 1;
+ quoted = true;
+ }
+ for (;;) {
+ const char *ipv6_start = *s;
+ char ipv6_str[INET6_ADDRSTRLEN];
+ size_t len;
+
+ while (isxdigit((unsigned char)**s) || **s == ':' || **s == '.')
+ *s += 1;
+
+ len = *s - ipv6_start;
+ if (len == 0 || len > INET6_ADDRSTRLEN)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ if (*dp + 16 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ memcpy(ipv6_str, ipv6_start, len);
+ ipv6_str[len] = 0;
+ if (inet_pton(AF_INET6, ipv6_str, *dp) != 1)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR;
+
+ *dp += 16;
+ if (**s == ',')
+ *s += 1;
+ else
+ break;
+ }
+ if (quoted) {
+ if (**s != '"')
+ return LDNS_STATUS_INVALID_STR;
+ *s += 1;
+ }
+ return **s && !isspace((unsigned char)**s)
+ ? LDNS_STATUS_SYNTAX_SVCPARAM_VALUE_ERR
+ : LDNS_STATUS_OK;
+}
+
+struct struct_svcparam_key_def {
+ const char *str;
+ size_t len;
+};
+typedef struct struct_svcparam_key_def svcparam_key_def;
+
+static svcparam_key_def svcparam_key_defs[] = { { "mandatory" , 9 }
+ , { "alpn" , 4 }
+ , { "no-default-alpn", 15 }
+ , { "port" , 4 }
+ , { "ipv4hint" , 8 }
+ , { "ech" , 3 }
+ , { "ipv6hint" , 8 }
+ , { "dohpath" , 7 } };
+
+static const size_t svcparam_key_defs_len = sizeof(svcparam_key_defs)
+ / sizeof(svcparam_key_def);
+
+/* svcparam_key2buffer_str() should actually be in host2str.c, but we need the
+ * svcparam_key_defs for it and it is not an exposed symbol anyway.
+ */
+ldns_status svcparam_key2buffer_str(ldns_buffer *output, uint16_t key)
+{
+ if (key <= LDNS_SVCPARAM_KEY_LAST_KEY)
+ ldns_buffer_write_string(output, svcparam_key_defs[key].str);
+ else
+ ldns_buffer_printf(output, "key%d", (int)key);
+ return ldns_buffer_status(output);
+}
+
+static ldns_status
+parse_svcparam_key(const char **s, ldns_svcparam_key *key)
+{
+ size_t i, len;
+ const char *key_str = *s;
+ char num_str[6];
+ char *endptr;
+ unsigned long int num;
+
+ /* parse key */
+ while (islower((unsigned char)**s) || isdigit((unsigned char)**s)
+ || **s == '-')
+ *s += 1;
+
+ len = *s - key_str;
+ for (i = 0; i < svcparam_key_defs_len; i++) {
+ if (len == svcparam_key_defs[i].len
+ && !strncmp(key_str, svcparam_key_defs[i].str, len)) {
+ *key = i;
+ return LDNS_STATUS_OK;
+ }
+ }
+ /* Also allow "echconfig" from earlier draft versions. */
+ if (len == 9 && !strncmp(key_str, "echconfig", 9)) {
+ *key = LDNS_SVCPARAM_KEY_ECH;
+ return LDNS_STATUS_OK;
+ }
+ if (len < 4 || len > 8 || strncmp(key_str, "key", 3))
+ return LDNS_STATUS_SYNTAX_SVCPARAM_KEY_ERR;
+
+ memcpy(num_str, key_str + 3, len - 3);
+ num_str[len - 3] = 0;
+ num = strtoul(num_str, &endptr, 10);
+ if (*endptr || num > 65535)
+ return LDNS_STATUS_SYNTAX_SVCPARAM_KEY_ERR;
+
+ /* key65535 is Reserved to be an ("Invalid key"), though there is no
+ * physiological reason to deny usage. We restrict ourselves to the
+ * anatomical limitations only to maximize serviceability.
+ * ```
+ * if (num == 65535)
+ * return LDNS_STATUS_RESERVED_SVCPARAM_KEY;
+ * ```
+ */
+ *key = num;
+ return LDNS_STATUS_OK;
+}
+
+static ldns_status
+parse_svcparam(const char **s, uint8_t **dp, uint8_t *eod)
+{
+ ldns_svcparam_key key;
+ ldns_status st;
+ uint8_t *val;
+
+ if (*dp + 4 > eod)
+ return LDNS_STATUS_RDATA_OVERFLOW;
+
+ if ((st = parse_svcparam_key(s, &key)))
+ return st;
+
+ ldns_write_uint16(*dp, key);
+ ldns_write_uint16(*dp + 2, 0);
+ *dp += 4;
+ if (isspace((unsigned char)**s) || !**s)
+ return LDNS_STATUS_OK;
+
+ else if (**s != '=')
+ return LDNS_STATUS_SYNTAX_ERR;
+ *s += 1;
+ val = *dp;
+ switch(key) {
+ case LDNS_SVCPARAM_KEY_MANDATORY:
+ st = parse_svcparam_mandatory(s, dp, eod);
+ break;
+ case LDNS_SVCPARAM_KEY_ALPN:
+ st = parse_svcparam_alpn(s, dp, eod);
+ break;
+ case LDNS_SVCPARAM_KEY_NO_DEFAULT_ALPN:
+ return LDNS_STATUS_NO_SVCPARAM_VALUE_EXPECTED;
+ case LDNS_SVCPARAM_KEY_PORT:
+ st = parse_svcparam_port(s, dp, eod);
+ break;
+ case LDNS_SVCPARAM_KEY_IPV4HINT:
+ st = parse_svcparam_ipv4hint(s, dp, eod);
+ break;
+ case LDNS_SVCPARAM_KEY_ECH:
+ st = parse_svcparam_ech(s, dp, eod);
+ break;
+ case LDNS_SVCPARAM_KEY_IPV6HINT:
+ st = parse_svcparam_ipv6hint(s, dp, eod);
+ break;
+ default:
+ st = parse_svcparam_value(s, dp, eod);
+ break;
+ }
+ if (st)
+ return st;
+ ldns_write_uint16(val - 2, *dp - val);
+ return LDNS_STATUS_OK;
+}
+
+static int
+svcparam_ptr_cmp(const void *a, const void *b)
+{
+ uint8_t *x = *(uint8_t **)a , *y = *(uint8_t **)b;
+ uint16_t x_type = ldns_read_uint16(x), y_type = ldns_read_uint16(y);
+ uint16_t x_len , y_len;
+
+ if (x_type != y_type)
+ return x_type > y_type ? 1 : -1;
+
+ x_len = ldns_read_uint16(x + 2);
+ y_len = ldns_read_uint16(y + 2);
+
+ return x_len != y_len
+ ? (x_len > y_len ? 1 : -1)
+ : (x_len == 0 ? 0 : memcmp(x + 4, y + 4, x_len));
+}
+
+ldns_status
+ldns_str2rdf_svcparams(ldns_rdf **rd, const char *str)
+{
+ uint8_t *data, *dp, *eod, *p, *new_data;
+ ldns_status st = LDNS_STATUS_OK;
+ size_t length, i;
+ size_t nparams = 0;
+ uint8_t **svcparams;
+ int prev_key;
+
+ if (!rd || !str)
+ return LDNS_STATUS_NULL;
+
+ length = strlen(str);
+ /* Worst case space requirement. We'll realloc to actual size later. */
+ if (!(dp = data = LDNS_XMALLOC(uint8_t, length * 4)))
+ return LDNS_STATUS_MEM_ERR;
+ eod = data + length * 4;
+
+ /* Fill data with parsed bytes */
+ for (;;) {
+ while (isspace((unsigned char)*str))
+ str += 1;
+ if(!*str)
+ break;
+ if ((st = parse_svcparam(&str, &dp, eod))) {
+ LDNS_FREE(data);
+ return st;
+ }
+ nparams += 1;
+ }
+
+ /* draft-ietf-dnsop-svcb-https-02 in Section 2.2:
+ *
+ * SvcParamKeys SHALL appear in increasing numeric order
+ *
+ * A svcparams array (with pointers to the individual key, value pairs)
+ * is created to qsort the pairs in increasing numeric order.
+ */
+ if (!(svcparams = LDNS_XMALLOC(uint8_t *, nparams))) {
+ LDNS_FREE(data);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ for ( p = data, i = 0
+ ; p < dp && i < nparams
+ ; p += 4 + ldns_read_uint16(p + 2))
+ svcparams[i++] = p;
+
+ qsort(svcparams, i, sizeof(uint8_t *), svcparam_ptr_cmp);
+
+ /* Write out the (key, value) pairs to a newly allocated data in
+ * sorted order.
+ */
+ length = dp - data;
+ if (!(new_data = LDNS_XMALLOC(uint8_t, length))) {
+ LDNS_FREE(data);
+ LDNS_FREE(svcparams);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ prev_key = -1;
+ for ( p = new_data, i = 0
+ ; p < new_data + length && i < nparams
+ ; p += 4 + ldns_read_uint16(p + 2), i += 1) {
+ uint16_t key = ldns_read_uint16(svcparams[i]);
+
+ /* In draft-ietf-dnsop-svcb-https-02 Section 2.1:
+ *
+ * SvcParams ...<snip>... keys MUST NOT be repeated.
+ *
+ * ldns will not impose this limitation on the library user,
+ * but we can merge completely equal repetitions into one.
+ * So, not doing
+ * ```
+ * if (key == prev_key)
+ * return LDNS_STATUS_SVCPARAM_KEY_MORE_THAN_ONCE;
+ * ```
+ * but instead:
+ */
+ if (key == prev_key && ldns_read_uint16(svcparams[i] + 2)
+ == ldns_read_uint16(svcparams[i - 1] + 2)
+ && 0 == memcmp( svcparams[i ] + 4
+ , svcparams[i - 1] + 4
+ , ldns_read_uint16(svcparams[i] + 2))) {
+ p -= 4 + ldns_read_uint16(svcparams[i] + 2);
+ continue;
+ }
+ memcpy(p, svcparams[i], 4 + ldns_read_uint16(svcparams[i] + 2));
+ prev_key = key;
+ }
+ LDNS_FREE(data);
+ LDNS_FREE(svcparams);
+
+ /* Create rdf */
+ *rd = ldns_rdf_new(LDNS_RDF_TYPE_SVCPARAMS, p - new_data, new_data);
+ if (! *rd) {
+ LDNS_FREE(new_data);
+ return LDNS_STATUS_MEM_ERR;
+ }
+ return LDNS_STATUS_OK;
+}
+#else /* #ifdef RRTYPE_SVCB_HTTPS */
+ldns_status
+ldns_str2rdf_svcparams(ldns_rdf **rd, const char *str)
+{
+ (void)rd; (void)str;
+ return LDNS_STATUS_NOT_IMPL;
+}
+#endif /* #ifdef RRTYPE_SVCB_HTTPS */
diff --git a/tsig.c b/tsig.c
index 62776f061d6a..26a1e73f1d7a 100644
--- a/tsig.c
+++ b/tsig.c
@@ -196,7 +196,7 @@ ldns_tsig_mac_new(ldns_rdf **tsig_mac, const uint8_t *pkt_wire, size_t pkt_wire_
return LDNS_STATUS_MEM_ERR;
}
/*
- * prepare the digestable information
+ * prepare the digestible information
*/
data_buffer = ldns_buffer_new(LDNS_MAX_PACKETLEN);
if (!data_buffer) {
@@ -349,7 +349,19 @@ ldns_pkt_tsig_verify_next(ldns_pkt *pkt, const uint8_t *wire, size_t wirelen, co
ldns_rdf_deep_free(key_name_rdf);
- if (ldns_rdf_compare(pkt_mac_rdf, my_mac_rdf) == 0) {
+ if( ldns_rdf_size(pkt_mac_rdf) != ldns_rdf_size(my_mac_rdf)) {
+ ldns_rdf_deep_free(my_mac_rdf);
+ return false;
+ }
+ /* use time insensitive memory compare */
+ if(
+#ifdef HAVE_CRYPTO_MEMCMP
+ CRYPTO_memcmp
+#else
+ memcmp
+#endif
+ (ldns_rdf_data(pkt_mac_rdf), ldns_rdf_data(my_mac_rdf),
+ ldns_rdf_size(my_mac_rdf)) == 0) {
ldns_rdf_deep_free(my_mac_rdf);
return true;
} else {
diff --git a/util.c b/util.c
index 3dcd8495ebb9..807a99e2308d 100644
--- a/util.c
+++ b/util.c
@@ -293,25 +293,35 @@ ldns_gmtime64_r(int64_t clock, struct tm *result)
#endif /* SIZEOF_TIME_T <= 4 */
static int64_t
-ldns_serial_arithmitics_time(int32_t time, time_t now)
+ldns_serial_arithmetics_time(int32_t time, time_t now)
{
- int32_t offset = time - (int32_t) now;
+ /* Casting due to https://github.com/NLnetLabs/ldns/issues/71 */
+ int32_t offset = (int32_t) ((uint32_t) time - (uint32_t) now);
return (int64_t) now + offset;
}
-
struct tm *
-ldns_serial_arithmitics_gmtime_r(int32_t time, time_t now, struct tm *result)
+ldns_serial_arithmetics_gmtime_r(int32_t time, time_t now, struct tm *result)
{
#if SIZEOF_TIME_T <= 4
- int64_t secs_since_epoch = ldns_serial_arithmitics_time(time, now);
+ int64_t secs_since_epoch = ldns_serial_arithmetics_time(time, now);
return ldns_gmtime64_r(secs_since_epoch, result);
#else
- time_t secs_since_epoch = ldns_serial_arithmitics_time(time, now);
+ time_t secs_since_epoch = ldns_serial_arithmetics_time(time, now);
return gmtime_r(&secs_since_epoch, result);
#endif
}
+#ifdef ldns_serial_arithmitics_gmtime_r
+#undef ldns_serial_arithmitics_gmtime_r
+#endif
+/* alias function because of previously used wrong spelling */
+struct tm *
+ldns_serial_arithmitics_gmtime_r(int32_t time, time_t now, struct tm *result)
+{
+ return ldns_serial_arithmetics_gmtime_r(time, now, result);
+}
+
/**
* Init the random source
* applications should call this if they need entropy data within ldns
@@ -377,7 +387,7 @@ ldns_init_random(FILE *fd, unsigned int size)
RAND_seed(seed, (int) size);
#else
/* Seed the standard prng, only uses the first
- * unsigned sizeof(unsiged int) bytes found in the entropy pool
+ * unsigned sizeof(unsigned int) bytes found in the entropy pool
*/
memcpy(&seed_i, seed, sizeof(seed_i));
srandom(seed_i);
@@ -548,10 +558,12 @@ ldns_b32_ntop_base(const uint8_t* src, size_t src_sz,
/* ........ ........ ....4444 4....... ........ */
c = src[3] >> 7 ;
+ /* fallthrough */
case 3: dst[4] = b32[(src[2] & 0x0f) << 1 | c];
/* ........ .......3 3333.... ........ ........ */
c = src[2] >> 4 ;
+ /* fallthrough */
case 2: dst[3] = b32[(src[1] & 0x01) << 4 | c];
/* ........ ..22222. ........ ........ ........ */
@@ -559,6 +571,7 @@ ldns_b32_ntop_base(const uint8_t* src, size_t src_sz,
/* .....111 11...... ........ ........ ........ */
c = src[1] >> 6 ;
+ /* fallthrough */
case 1: dst[1] = b32[(src[0] & 0x07) << 2 | c];
/* 00000... ........ ........ ........ ........ */
@@ -569,9 +582,12 @@ ldns_b32_ntop_base(const uint8_t* src, size_t src_sz,
switch (src_sz) {
case 1: dst[2] = '=';
dst[3] = '=';
+ /* fallthrough */
case 2: dst[4] = '=';
+ /* fallthrough */
case 3: dst[5] = '=';
dst[6] = '=';
+ /* fallthrough */
case 4: dst[7] = '=';
}
}
@@ -696,15 +712,18 @@ ldns_b32_pton_base(const char* src, size_t src_sz,
/* ........ ........ ........ .55555.. ........ */
/* ........ ........ ....4444 4....... ........ */
dst[3] = buf[4] << 7 | buf[5] << 2 | buf[6] >> 3;
+ /* fallthrough */
case 5: /* ........ ........ ....4444 4....... ........ */
/* ........ .......3 3333.... ........ ........ */
dst[2] = buf[3] << 4 | buf[4] >> 1;
+ /* fallthrough */
case 4: /* ........ .......3 3333.... ........ ........ */
/* ........ ..22222. ........ ........ ........ */
/* .....111 11...... ........ ........ ........ */
dst[1] = buf[1] << 6 | buf[2] << 1 | buf[3] >> 4;
+ /* fallthrough */
case 2: /* .....111 11...... ........ ........ ........ */
/* 00000... ........ ........ ........ ........ */
diff --git a/wire2host.c b/wire2host.c
index 680d2f9dcb70..63b67a0d1713 100644
--- a/wire2host.c
+++ b/wire2host.c
@@ -272,6 +272,8 @@ ldns_wire2rdf(ldns_rr *rr, const uint8_t *wire, size_t max, size_t *pos)
case LDNS_RDF_TYPE_ATMA:
case LDNS_RDF_TYPE_IPSECKEY:
case LDNS_RDF_TYPE_LONG_STR:
+ case LDNS_RDF_TYPE_AMTRELAY:
+ case LDNS_RDF_TYPE_SVCPARAMS:
case LDNS_RDF_TYPE_NONE:
/*
* Read to end of rr rdata
@@ -309,7 +311,6 @@ ldns_wire2rdf(ldns_rr *rr, const uint8_t *wire, size_t max, size_t *pos)
return LDNS_STATUS_OK;
}
-
/* TODO:
can *pos be incremented at READ_INT? or maybe use something like
RR_CLASS(wire)?
@@ -412,6 +413,10 @@ ldns_wire2pkt(ldns_pkt **packet_p, const uint8_t *wire, size_t max)
uint8_t data[4];
+ if (!packet) {
+ return LDNS_STATUS_MEM_ERR;
+ }
+
status = ldns_wire2pkt_hdr(packet, wire, max, &pos);
LDNS_STATUS_CHECK_GOTO(status, status_error);
@@ -464,6 +469,7 @@ ldns_wire2pkt(ldns_pkt **packet_p, const uint8_t *wire, size_t max)
ldns_pkt_set_edns_z(packet, ldns_read_uint16(&data[2]));
/* edns might not have rdfs */
if (ldns_rr_rdf(rr, 0)) {
+ ldns_rdf_deep_free(ldns_pkt_edns_data(packet));
ldns_pkt_set_edns_data(packet, ldns_rdf_clone(ldns_rr_rdf(rr, 0)));
}
ldns_rr_free(rr);
diff --git a/zone.c b/zone.c
index e95207482354..9a5d4c4e9e12 100644
--- a/zone.c
+++ b/zone.c
@@ -180,7 +180,7 @@ ldns_zone_new(void)
return z;
}
-/* we regocnize:
+/* we recognize:
* $TTL, $ORIGIN
*/
ldns_status
@@ -189,19 +189,28 @@ ldns_zone_new_frm_fp(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t t
return ldns_zone_new_frm_fp_l(z, fp, origin, ttl, c, NULL);
}
+ldns_status _ldns_rr_new_frm_fp_l_internal(ldns_rr **newrr, FILE *fp,
+ uint32_t *default_ttl, ldns_rdf **origin, ldns_rdf **prev,
+ int *line_nr, bool *explicit_ttl);
+
/* XXX: class is never used */
ldns_status
-ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t ttl,
- ldns_rr_class ATTR_UNUSED(c), int *line_nr)
+ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, const ldns_rdf *origin,
+ uint32_t default_ttl, ldns_rr_class ATTR_UNUSED(c), int *line_nr)
{
ldns_zone *newzone;
- ldns_rr *rr;
+ ldns_rr *rr, *prev_rr = NULL;
uint32_t my_ttl;
ldns_rdf *my_origin;
ldns_rdf *my_prev;
bool soa_seen = false; /* 2 soa are an error */
ldns_status s;
ldns_status ret;
+ /* RFC 1035 Section 5.1, says 'Omitted class and TTL values are default
+ * to the last explicitly stated values.'
+ */
+ bool ttl_from_TTL = false;
+ bool explicit_ttl = false;
/* most cases of error are memory problems */
ret = LDNS_STATUS_MEM_ERR;
@@ -210,7 +219,7 @@ ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t
my_origin = NULL;
my_prev = NULL;
- my_ttl = ttl;
+ my_ttl = default_ttl;
if (origin) {
my_origin = ldns_rdf_clone(origin);
@@ -224,9 +233,58 @@ ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t
if (!newzone) goto error;
while(!feof(fp)) {
- s = ldns_rr_new_frm_fp_l(&rr, fp, &my_ttl, &my_origin, &my_prev, line_nr);
+ /* If ttl came from $TTL line, then it should be the default.
+ * (RFC 2308 Section 4)
+ * Otherwise it "defaults to the last explicitly stated value"
+ * (RFC 1035 Section 5.1)
+ */
+ if (ttl_from_TTL)
+ my_ttl = default_ttl;
+ s = _ldns_rr_new_frm_fp_l_internal(&rr, fp, &my_ttl, &my_origin,
+ &my_prev, line_nr, &explicit_ttl);
switch (s) {
case LDNS_STATUS_OK:
+ if (explicit_ttl) {
+ if (!ttl_from_TTL) {
+ /* No $TTL, so ttl "defaults to the
+ * last explicitly stated value"
+ * (RFC 1035 Section 5.1)
+ */
+ my_ttl = ldns_rr_ttl(rr);
+ }
+ /* When ttl is implicit, try to adhere to the rules as
+ * much as possible. (also for compatibility with bind)
+ * This was changed when fixing an issue with ZONEMD
+ * which hashes the TTL too.
+ */
+ } else if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_SIG
+ || ldns_rr_get_type(rr) == LDNS_RR_TYPE_RRSIG) {
+ if (ldns_rr_rd_count(rr) >= 4
+ && ldns_rdf_get_type(ldns_rr_rdf(rr, 3)) == LDNS_RDF_TYPE_INT32)
+
+ /* SIG without explicit ttl get ttl
+ * from the original_ttl field
+ * (RFC 2535 Section 7.2)
+ *
+ * Similarly for RRSIG, but stated less
+ * specifically in the spec.
+ * (RFC 4034 Section 3)
+ */
+ ldns_rr_set_ttl(rr,
+ ldns_rdf2native_int32(
+ ldns_rr_rdf(rr, 3)));
+
+ } else if (prev_rr
+ && ldns_rr_get_type(prev_rr) == ldns_rr_get_type(rr)
+ && ldns_dname_compare( ldns_rr_owner(prev_rr)
+ , ldns_rr_owner(rr)) == 0)
+
+ /* "TTLs of all RRs in an RRSet must be the same"
+ * (RFC 2881 Section 5.2)
+ */
+ ldns_rr_set_ttl(rr, ldns_rr_ttl(prev_rr));
+
+ prev_rr = rr;
if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_SOA) {
if (soa_seen) {
/* second SOA
@@ -245,19 +303,25 @@ ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t
}
/* a normal RR - as sofar the DNS is normal */
- if (!ldns_zone_push_rr(newzone, rr)) goto error;
+ if (!ldns_zone_push_rr(newzone, rr)) {
+ ldns_rr_free(rr);
+ goto error;
+ }
+ break;
case LDNS_STATUS_SYNTAX_EMPTY:
/* empty line was seen */
case LDNS_STATUS_SYNTAX_TTL:
/* the function set the ttl */
+ default_ttl = my_ttl;
+ ttl_from_TTL = true;
break;
case LDNS_STATUS_SYNTAX_ORIGIN:
/* the function set the origin */
break;
case LDNS_STATUS_SYNTAX_INCLUDE:
ret = LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL;
- break;
+ goto error;
default:
ret = s;
goto error;