diff --git a/src/common/example-all-functions.c b/src/common/example-all-functions.c deleted file mode 100644 index c4ad41c5..00000000 --- a/src/common/example-all-functions.c +++ /dev/null @@ -1,297 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#define UNUSED_PARAM(x) ((void)(x)) - -/* The return values */ -getdns_return_t retregular; -char * retcharstar; - -/* The args */ -bool boolarg; -char * charstararg; -getdns_callback_t callbackarg; -uint16_t regulararg; -uint16_t *regularptrarg; -getdns_transaction_t txidarg; -getdns_transaction_t * txidptrarg; - -getdns_data_type * datatypeptrarg; -struct getdns_bindata ** bindataptrarg; -struct getdns_dict * dictarg; -struct getdns_bindata * bindataarg; -struct getdns_list * listarg; -struct getdns_dict ** dictptrarg; -struct getdns_list ** listptrarg; - -size_t sizetarg; -size_t * sizetptrarg; -getdns_context_t contextarg = NULL; -uint8_t uint8arg; -uint16_t uint16arg; -uint32_t uint32arg; -uint8_t * uint8ptrarg; -uint16_t * uint16ptrarg; -uint32_t * uint32ptrarg; -void * arrayarg; -void allocfunctionarg(size_t foo) {UNUSED_PARAM(foo);} -void deallocfunctionarg(void* foo) {UNUSED_PARAM(foo);} -void setcallbackfunctionarg(struct getdns_context_t *foo1, uint16_t foo2) - {UNUSED_PARAM(foo1);UNUSED_PARAM(foo2);} - -int main() -{ - -retregular = getdns_general( - contextarg, - charstararg, - uint16arg, - dictarg, - arrayarg, - txidptrarg, - callbackarg -); - -retregular = getdns_address( - contextarg, - charstararg, - dictarg, - arrayarg, - txidptrarg, - callbackarg -); - -retregular = getdns_hostname( - contextarg, - dictarg, - dictarg, - arrayarg, - txidptrarg, - callbackarg -); - -retregular = getdns_service( - contextarg, - charstararg, - dictarg, - arrayarg, - txidptrarg, - callbackarg -); - -retregular = getdns_context_create( - &contextarg, - boolarg -); - -getdns_context_destroy( - contextarg -); - -retregular = getdns_cancel_callback( - contextarg, - txidarg -); - -retregular = getdns_general_sync( - contextarg, - charstararg, - uint16arg, - dictarg, - uint32ptrarg, - dictarg -); - -retregular = getdns_address_sync( - contextarg, - charstararg, - dictarg, - uint32ptrarg, - dictarg -); - -retregular = getdns_hostname_sync( - contextarg, - dictarg, - dictarg, - uint32ptrarg, - dictarg -); - -retregular = getdns_service_sync( - contextarg, - charstararg, - dictarg, - uint32ptrarg, - dictarg -); - -getdns_free_sync_request_memory( - dictarg -); - -retregular = getdns_list_get_length(listarg, sizetptrarg); -retregular = getdns_list_get_data_type(listarg, sizetarg, datatypeptrarg); -retregular = getdns_list_get_dict(listarg, sizetarg, dictptrarg); -retregular = getdns_list_get_list(listarg, sizetarg, listptrarg); -retregular = getdns_list_get_bindata(listarg, sizetarg, bindataptrarg); -retregular = getdns_list_get_int(listarg, sizetarg, uint32ptrarg); - -retregular = getdns_dict_get_names(dictarg, listptrarg); -retregular = getdns_dict_get_data_type(dictarg, charstararg, datatypeptrarg); -retregular = getdns_dict_get_dict(dictarg, charstararg, dictptrarg); -retregular = getdns_dict_get_list(dictarg, charstararg, listptrarg); -retregular = getdns_dict_get_bindata(dictarg, charstararg, bindataptrarg); -retregular = getdns_dict_get_int(dictarg, charstararg, uint32ptrarg); - -listarg = getdns_list_create(); -getdns_list_destroy(listarg); -retregular = getdns_list_set_dict(listarg, sizetarg, dictarg); -retregular = getdns_list_set_list(listarg, sizetarg, listarg); -retregular = getdns_list_set_bindata(listarg, sizetarg, bindataarg); -retregular = getdns_list_set_int(listarg, sizetarg, uint32arg); - -dictarg = getdns_dict_create(); -getdns_dict_destroy(dictarg); -retregular = getdns_dict_set_dict(dictarg, charstararg, dictarg); -retregular = getdns_dict_set_list(dictarg, charstararg, listarg); -retregular = getdns_dict_set_bindata(dictarg, charstararg, bindataarg); -retregular = getdns_dict_set_int(dictarg, charstararg, uint32arg); - -retcharstar = getdns_convert_fqdn_to_dns_name( - charstararg -); - -retcharstar = getdns_convert_dns_name_to_fqdn( - charstararg -); - -retcharstar = getdns_convert_ulabel_to_alabel( - charstararg -); - -retcharstar = getdns_convert_alabel_to_ulabel( - charstararg -); - -retregular = getdns_validate_dnssec( - bindataarg, - listarg, - listarg -); - -retcharstar = getdns_pretty_print_dict( - dictarg -); - -retcharstar = getdns_display_ip_address( - bindataarg -); - -retregular = getdns_context_set_context_update_callback( - contextarg, - setcallbackfunctionarg -); - -retregular = getdns_context_set_resolution_type( - contextarg, - regulararg -); - -retregular = getdns_context_set_namespaces( - contextarg, - sizetarg, - regularptrarg -); - -retregular = getdns_context_set_dns_transport( - contextarg, - regulararg -); - -retregular = getdns_context_set_limit_outstanding_queries( - contextarg, - uint16arg -); - -retregular = getdns_context_set_timeout( - contextarg, - uint16arg -); - -retregular = getdns_context_set_follow_redirects( - contextarg, - regulararg -); - -retregular = getdns_context_set_dns_root_servers( - contextarg, - listarg -); - -retregular = getdns_context_set_append_name( - contextarg, - regulararg -); - -retregular = getdns_context_set_suffix( - contextarg, - listarg -); - -retregular = getdns_context_set_dnssec_trust_anchors( - contextarg, - listarg -); - -retregular = getdns_context_set_dnssec_allowed_skew( - contextarg, - uint16arg -); - -retregular = getdns_context_set_stub_resolution( - contextarg, - listarg -); - -retregular = getdns_context_set_edns_maximum_udp_payload_size( - contextarg, - uint16arg -); - -retregular = getdns_context_set_edns_extended_rcode( - contextarg, - uint8arg -); - -retregular = getdns_context_set_edns_version( - contextarg, - uint8arg -); - -retregular = getdns_context_set_edns_do_bit( - contextarg, - uint8arg -); - -retregular = getdns_context_set_memory_allocator( - contextarg, - allocfunctionarg -); - -retregular = getdns_context_set_memory_deallocator( - contextarg, - deallocfunctionarg -); - -retregular = getdns_context_set_memory_reallocator( - contextarg, - deallocfunctionarg -); - -return(0); } /* End of main() */ diff --git a/src/common/example-simple-answers.c b/src/common/example-simple-answers.c deleted file mode 100644 index 59cc82c6..00000000 --- a/src/common/example-simple-answers.c +++ /dev/null @@ -1,130 +0,0 @@ -/** - * /brief demonstrate asynchronous use of the API for fetching DNS data - * - * Originally taken from the getdns API description pseudo implementation. - */ - -/* The MIT License (MIT) - * Copyright (c) 2013 Verisign, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include - -#define UNUSED_PARAM(x) ((void)(x)) - -/* Set up the callback function, which will also do the processing of the results */ -void this_callbackfn(struct getdns_context_t *this_context, - uint16_t this_callback_type, - struct getdns_dict *this_response, - void *this_userarg, - getdns_transaction_t this_transaction_id) -{ - UNUSED_PARAM(this_userarg); /* Not looking at the userarg for this example */ - UNUSED_PARAM(this_context); /* Not looking at the context for this example */ - getdns_return_t this_ret; /* Holder for all function returns */ - if (this_callback_type == GETDNS_CALLBACK_COMPLETE) /* This is a callback with data */ - { - /* Be sure the search returned something */ - uint32_t * this_error = NULL; - this_ret = getdns_dict_get_int(this_response, "status", this_error); // Ignore any error - if (*this_error != GETDNS_RESPSTATUS_GOOD) // If the search didn't return "good" - { - fprintf(stderr, "The search had no results, and a return value of %d. Exiting.", *this_error); - return; - } - struct getdns_list * just_the_addresses_ptr; - this_ret = getdns_dict_get_list(this_response, "just_address_answers", &just_the_addresses_ptr); - if (this_ret != GETDNS_RETURN_GOOD) // This check is really not needed, but prevents a compiler error under "pedantic" - { - fprintf(stderr, "Trying to get the answers failed: %d", this_ret); - return; - } - size_t * num_addresses_ptr = NULL; - this_ret = getdns_list_get_length(just_the_addresses_ptr, num_addresses_ptr); // Ignore any error - /* Go through each record */ - for ( size_t rec_count = 0; rec_count <= *num_addresses_ptr; ++rec_count ) - { - struct getdns_dict * this_address; - this_ret = getdns_list_get_dict(just_the_addresses_ptr, rec_count, &this_address); // Ignore any error - /* Just print the address */ - struct getdns_bindata * this_address_data; - this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); // Ignore any error - printf("The address is %s", getdns_display_ip_address(this_address_data)); - } - } - else if (this_callback_type == GETDNS_CALLBACK_CANCEL) - fprintf(stderr, "The callback with ID %"PRIu64" was cancelled. Exiting.", this_transaction_id); - else - fprintf(stderr, "The callback got a callback_type of %d. Exiting.", this_callback_type); -} - -int -main() -{ - /* Create the DNS context for this call */ - struct getdns_context_t *this_context = NULL; - getdns_return_t context_create_return = getdns_context_create(&this_context, true); - if (context_create_return != GETDNS_RETURN_GOOD) - { - fprintf(stderr, "Trying to create the context failed: %d", context_create_return); - return(GETDNS_RETURN_GENERIC_ERROR); - } - /* Create an event base and put it in the context using the unknown function name */ - struct event_base *this_event_base; - this_event_base = event_base_new(); - if (this_event_base == NULL) - { - fprintf(stderr, "Trying to create the event base failed."); - return(GETDNS_RETURN_GENERIC_ERROR); - } - (void)getdns_extension_set_libevent_base(this_context, this_event_base); - /* Set up the getdns call */ - const char * this_name = "www.example.com"; - char* this_userarg = "somestring"; // Could add things here to help identify this call - getdns_transaction_t this_transaction_id = 0; - - /* Make the call */ - getdns_return_t dns_request_return = getdns_address(this_context, this_name, - NULL, this_userarg, &this_transaction_id, this_callbackfn); - if (dns_request_return == GETDNS_RETURN_BAD_DOMAIN_NAME) - { - fprintf(stderr, "A bad domain name was used: %s. Exiting.", this_name); - return(GETDNS_RETURN_GENERIC_ERROR); - } - else - { - /* Call the event loop */ - int dispatch_return = event_base_dispatch(this_event_base); - UNUSED_PARAM(dispatch_return); - // TODO: check the return value above - } - /* Clean up */ - getdns_context_destroy(this_context); - /* Assuming we get here, leave gracefully */ - exit(EXIT_SUCCESS); -} /* main */ - -/* example-simple-answers.c */ diff --git a/src/common/example-synchronous.c b/src/common/example-synchronous.c deleted file mode 100644 index c100105a..00000000 --- a/src/common/example-synchronous.c +++ /dev/null @@ -1,109 +0,0 @@ -/* example-synchronous.c - * - * Originally taken from the getdns API description pseudo implementation. - * - * The MIT License (MIT) - * Copyright (c) 2013 Verisign, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - -#include -#include -#include -#include -#include -#include - -int -main() -{ - getdns_return_t context_create_return; - struct getdns_list *just_the_addresses_ptr; - size_t *num_addresses_ptr = NULL; - size_t rec_count; - struct getdns_dict *this_address; - struct getdns_bindata *this_address_data; - struct getdns_context_t *this_context = NULL; - uint32_t *this_error = NULL; - struct getdns_dict *this_extensions = NULL; - const char *this_name = "www.example.com"; - uint8_t this_request_type = GETDNS_RRTYPE_A; - struct getdns_dict *this_response = NULL; - uint32_t this_response_length; - getdns_return_t this_ret; - - /* Create the DNS context for this call */ - context_create_return = getdns_context_create(&this_context, true); - if (context_create_return != GETDNS_RETURN_GOOD) - { - fprintf(stderr, "Trying to create the context failed: %d", context_create_return); - return(GETDNS_RETURN_GENERIC_ERROR); - } - - /* Set up the getdns_sync_request call */ - /* Get the A and AAAA records */ - this_extensions = getdns_dict_create(); - this_ret = getdns_dict_set_int(this_extensions, "return_both_v4_and_v6", GETDNS_EXTENSION_TRUE); - if (this_ret != GETDNS_RETURN_GOOD) - { - fprintf(stderr, "Trying to set an extension do both IPv4 and IPv6 failed: %d", this_ret); - return(GETDNS_RETURN_GENERIC_ERROR); - } - - /* Make the call */ - getdns_return_t dns_request_return = getdns_general_sync(this_context, this_name, this_request_type, - this_extensions, &this_response_length, this_response); - if (dns_request_return == GETDNS_RETURN_BAD_DOMAIN_NAME) - { - fprintf(stderr, "A bad domain name was used: %s. Exiting.", this_name); - return(GETDNS_RETURN_GENERIC_ERROR); - } - else - { - /* Be sure the search returned something */ - this_ret = getdns_dict_get_int(this_response, "status", this_error); // Ignore any error - if (this_error && (*this_error != GETDNS_RESPSTATUS_GOOD)) // If the search didn't return "good" - { - fprintf(stderr, "The search had no results, and a return value of %d. Exiting.", *this_error); - return(GETDNS_RETURN_GENERIC_ERROR); - } - this_ret = getdns_dict_get_list(this_response, "just_address_answers", &just_the_addresses_ptr); // Ignore any error - this_ret = getdns_list_get_length(just_the_addresses_ptr, num_addresses_ptr); // Ignore any error - /* Go through each record */ - if (num_addresses_ptr) { - for (rec_count = 0; rec_count <= *num_addresses_ptr; ++rec_count ) - { - this_ret = getdns_list_get_dict(just_the_addresses_ptr, rec_count, &this_address); // Ignore any error - /* Just print the address */ - this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); // Ignore any error - printf("The address is %s", getdns_display_ip_address(this_address_data)); - } - } - } - - /* Clean up */ - getdns_context_destroy(this_context); - getdns_free_sync_request_memory(this_response); - - exit(EXIT_SUCCESS); -} /* main */ - -/* example-synchronous.c */ diff --git a/src/common/example-tree.c b/src/common/example-tree.c deleted file mode 100644 index 9bda28ec..00000000 --- a/src/common/example-tree.c +++ /dev/null @@ -1,138 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define UNUSED_PARAM(x) ((void)(x)) - -/* Set up the callback function, which will also do the processing of the results */ -void this_callbackfn(struct getdns_context_t *this_context, - getdns_return_t this_callback_type, - struct getdns_dict *this_response, - void *this_userarg, - getdns_transaction_t this_transaction_id) -{ - UNUSED_PARAM(this_userarg); /* Not looking at the userarg for this example */ - UNUSED_PARAM(this_context); /* Not looking at the context for this example */ - getdns_return_t this_ret; /* Holder for all function returns */ - if (this_callback_type == GETDNS_CALLBACK_COMPLETE) /* This is a callback with data */ - { - /* Be sure the search returned something */ - uint32_t * this_error = NULL; - this_ret = getdns_dict_get_int(this_response, "status", this_error); // Ignore any error - if (*this_error != GETDNS_RESPSTATUS_GOOD) // If the search didn't return "good" - { - fprintf(stderr, "The search had no results, and a return value of %d. Exiting.", *this_error); - return; - } - /* Find all the answers returned */ - struct getdns_list * these_answers; - this_ret = getdns_dict_get_list(this_response, "replies-tree", &these_answers); - if (this_ret == GETDNS_RETURN_NO_SUCH_DICT_NAME) - { - fprintf(stderr, "Weird: the response had no error, but also no replies-tree. Exiting."); - return; - } - size_t * num_answers_ptr = NULL; - this_ret = getdns_list_get_length(these_answers, num_answers_ptr); - /* Go through each answer */ - for ( size_t rec_count = 0; rec_count <= *num_answers_ptr; ++rec_count ) - { - struct getdns_dict * this_record; - this_ret = getdns_list_get_dict(these_answers, rec_count, &this_record); // Ignore any error - /* Get the answer section */ - struct getdns_list * this_answer; - this_ret = getdns_dict_get_list(this_record, "answer", &this_answer); // Ignore any error - /* Get each RR in the answer section */ - size_t * num_rrs_ptr = NULL; - this_ret = getdns_list_get_length(this_answer, num_rrs_ptr); - for ( size_t rr_count = 0; rr_count <= *num_rrs_ptr; ++rr_count ) - { - struct getdns_dict * this_rr = NULL; - this_ret = getdns_list_get_dict(this_answer, rr_count, &this_rr); // Ignore any error - /* Get the RDATA */ - struct getdns_dict * this_rdata = NULL; - this_ret = getdns_dict_get_dict(this_rr, "rdata", &this_rdata); // Ignore any error - /* Get the RDATA type */ - uint32_t * this_type = NULL; - this_ret = getdns_dict_get_int(this_rdata, "type", this_type); // Ignore any error - /* If it is type A or AAAA, print the value */ - if (*this_type == GETDNS_RRTYPE_A) - { - struct getdns_bindata * this_a_record = NULL; - this_ret = getdns_dict_get_bindata(this_rdata, "ipv4_address", &this_a_record); - if (this_ret == GETDNS_RETURN_NO_SUCH_DICT_NAME) - { - fprintf(stderr, "Weird: the A record at %d in record at %d had no address. Exiting.", - (int) rr_count, (int) rec_count); - return; - } - printf("The IPv4 address is %s", getdns_display_ip_address(this_a_record)); - } - else if (*this_type == GETDNS_RRTYPE_AAAA) - { - struct getdns_bindata * this_aaaa_record = NULL; - this_ret = getdns_dict_get_bindata(this_rdata, "ipv6_address", &this_aaaa_record); - if (this_ret == GETDNS_RETURN_NO_SUCH_DICT_NAME) - { - fprintf(stderr, "Weird: the AAAA record at %d in record at %d had no address. Exiting.", - (int) rr_count, (int) rec_count); - return; - } - printf("The IPv6 address is %s", getdns_display_ip_address(this_aaaa_record)); - } - } - } - } - else if (this_callback_type == GETDNS_CALLBACK_CANCEL) - fprintf(stderr, "The callback with ID %"PRIu64" was cancelled. Exiting.", this_transaction_id); - else - fprintf(stderr, "The callback got a callback_type of %d. Exiting.", this_callback_type); -} - -int main() -{ - /* Create the DNS context for this call */ - struct getdns_context_t *this_context = NULL; - getdns_return_t context_create_return = getdns_context_create(&this_context, true); - if (context_create_return != GETDNS_RETURN_GOOD) - { - fprintf(stderr, "Trying to create the context failed: %d", context_create_return); - return(GETDNS_RETURN_GENERIC_ERROR); - } - /* Create an event base and put it in the context using the unknown function name */ - struct event_base *this_event_base; - this_event_base = event_base_new(); - if (this_event_base == NULL) - { - fprintf(stderr, "Trying to create the event base failed."); - return(GETDNS_RETURN_GENERIC_ERROR); - } - (void)getdns_extension_set_libevent_base(this_context, this_event_base); - /* Set up the getdns call */ - const char * this_name = "www.example.com"; - char* this_userarg = "somestring"; // Could add things here to help identify this call - getdns_transaction_t this_transaction_id = 0; - - /* Make the call */ - getdns_return_t dns_request_return = getdns_address(this_context, this_name, - NULL, this_userarg, &this_transaction_id, this_callbackfn); - if (dns_request_return == GETDNS_RETURN_BAD_DOMAIN_NAME) - { - fprintf(stderr, "A bad domain name was used: %s. Exiting.", this_name); - return(GETDNS_RETURN_GENERIC_ERROR); - } - else - { - /* Call the event loop */ - int dispatch_return = event_base_dispatch(this_event_base); - UNUSED_PARAM(dispatch_return); - // TODO: check the return value above - } - /* Clean up */ - getdns_context_destroy(this_context); - /* Assuming we get here, leave gracefully */ - exit(EXIT_SUCCESS); -}