From 0d3327f4115786bb71373d52b31573175ac206cf Mon Sep 17 00:00:00 2001
From: Willem Toorop <willem@nlnetlabs.nl>
Date: Wed, 19 Feb 2014 15:09:44 +0100
Subject: [PATCH] [API 0.400] Typedeffed the structs away

---
 spec/example-all-functions.c  |  16 +-
 spec/example-reverse.c        |  24 +--
 spec/example-simple-answers.c |  12 +-
 spec/example-synchronous.c    |  12 +-
 spec/example-tree.c           |  20 +-
 spec/getdns-0.399.tgz         | Bin 39280 -> 0 bytes
 spec/getdns-0.400.tgz         | Bin 0 -> 39228 bytes
 spec/getdns_core_only.c       | 186 ++++++++---------
 spec/getdns_core_only.h       | 300 +++++++++++++--------------
 spec/getdns_libevent.h        |   4 +-
 spec/index.html               | 374 +++++++++++++++++-----------------
 11 files changed, 474 insertions(+), 474 deletions(-)
 delete mode 100644 spec/getdns-0.399.tgz
 create mode 100644 spec/getdns-0.400.tgz

diff --git a/spec/example-all-functions.c b/spec/example-all-functions.c
index 598fec14..632bd4de 100644
--- a/spec/example-all-functions.c
+++ b/spec/example-all-functions.c
@@ -27,16 +27,16 @@ getdns_transport_t transportarg;
 getdns_append_name_t appendnamearg;
 
 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;
+getdns_bindata ** bindataptrarg;
+getdns_dict * dictarg;
+getdns_bindata * bindataarg;
+getdns_list * listarg;
+getdns_dict ** dictptrarg;
+getdns_list ** listptrarg;
 
 size_t sizetarg;
 size_t * sizetptrarg;
-struct getdns_context *contextarg = NULL;
+getdns_context *contextarg = NULL;
 uint8_t uint8arg;
 uint16_t uint16arg;
 uint32_t uint32arg;
@@ -55,7 +55,7 @@ void * extendedreallocfunctionarg(void* userarg, void* foo, size_t bar)
 	{UNUSED_PARAM(userarg); UNUSED_PARAM(foo); UNUSED_PARAM(bar); return NULL; }
 void extendeddeallocfunctionarg(void* userarg, void* foo)
 	{UNUSED_PARAM(userarg); UNUSED_PARAM(foo);}
-void setcallbackfunctionarg(struct getdns_context *foo1, getdns_context_code_t foo2)
+void setcallbackfunctionarg(getdns_context *foo1, getdns_context_code_t foo2)
 	{UNUSED_PARAM(foo1);UNUSED_PARAM(foo2);}
 
 int main()
diff --git a/spec/example-reverse.c b/spec/example-reverse.c
index de1a58da..4f5c7751 100644
--- a/spec/example-reverse.c
+++ b/spec/example-reverse.c
@@ -8,9 +8,9 @@
 #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 *this_context,
+void this_callbackfn(getdns_context *this_context,
                      uint16_t     this_callback_type,
-                     struct getdns_dict *this_response, 
+                     getdns_dict *this_response, 
                      void *this_userarg,
                      getdns_transaction_t this_transaction_id)
 {
@@ -29,34 +29,34 @@ void this_callbackfn(struct getdns_context *this_context,
 			getdns_dict_destroy(this_response);
 			return;
 		}
-		struct getdns_list *replies_tree;
+		getdns_list *replies_tree;
 		this_ret = getdns_dict_get_list(this_response, "replies_tree", &replies_tree);  // Ignore any error
 		size_t num_replies;
 		this_ret = getdns_list_get_length(replies_tree, &num_replies);  // Ignore any error
 		/* Go through each reply */
 		for ( size_t reply_count = 0; reply_count < num_replies; ++reply_count)
 		{
-			struct getdns_dict * this_reply;
+			getdns_dict * this_reply;
 			this_ret = getdns_list_get_dict(replies_tree, reply_count, &this_reply);  // Ignore any error
 			/* Just print the address */
-			struct getdns_list* reply_answers;
+			getdns_list* reply_answers;
 			this_ret = getdns_dict_get_list(this_reply, "answer", &reply_answers); // Ignore any error
 			size_t num_answers;
 			this_ret = getdns_list_get_length(reply_answers, &num_answers);  // Ignore any error
 			/* Go through each answer */
 			for ( size_t answer_count = 0; answer_count < num_answers; ++answer_count)
 			{
-				struct getdns_dict * this_rr;
+				getdns_dict * this_rr;
 				this_ret = getdns_list_get_dict(reply_answers, answer_count, &this_rr);
 				/* Get the RDATA type */
 				uint32_t this_type;
 				this_ret = getdns_dict_get_int(this_rr, "type", &this_type);  // Ignore any error
 				if (this_type == GETDNS_RRTYPE_PTR)
 				{
-					struct getdns_dict *this_rdata;
+					getdns_dict *this_rdata;
 					this_ret = getdns_dict_get_dict(this_rr, "rdata", &this_rdata);  // Ignore any error
 
-					struct getdns_bindata * this_dname;
+					getdns_bindata * this_dname;
 					this_ret = getdns_dict_get_bindata(this_rdata, "rdata_raw", &this_dname);
 					char *this_dname_str = getdns_convert_dns_name_to_fqdn((char *)this_dname->data);
 					printf("The dname is %s\n", this_dname_str);
@@ -77,7 +77,7 @@ void this_callbackfn(struct getdns_context *this_context,
 int main()
 {
 	/* Create the DNS context for this call */
-	struct getdns_context *this_context = NULL;
+	getdns_context *this_context = NULL;
 	getdns_return_t context_create_return = getdns_context_create(&this_context, 1);
 	if (context_create_return != GETDNS_RETURN_GOOD)
 	{
@@ -95,12 +95,12 @@ int main()
 	}
 	(void)getdns_extension_set_libevent_base(this_context, this_event_base);
 	/* Set up the getdns call */
-	struct getdns_dict * this_addr_to_look_up = getdns_dict_create();
+	getdns_dict * this_addr_to_look_up = getdns_dict_create();
 	// TODO: check the return value above
-	struct getdns_bindata this_type = { 4, (void *)"IPv4" };
+	getdns_bindata this_type = { 4, (void *)"IPv4" };
 	getdns_return_t this_ret = getdns_dict_set_bindata(this_addr_to_look_up, "address_type", &this_type);
 	UNUSED_PARAM(this_ret);
-	struct getdns_bindata this_ipv4_addr = { 4, (void *)"\x08\x08\x08\x08" };
+	getdns_bindata this_ipv4_addr = { 4, (void *)"\x08\x08\x08\x08" };
 	this_ret = getdns_dict_set_bindata(this_addr_to_look_up, "address_data", &this_ipv4_addr);
 	char* this_userarg = "somestring"; // Could add things here to help identify this call
 	getdns_transaction_t this_transaction_id = 0;
diff --git a/spec/example-simple-answers.c b/spec/example-simple-answers.c
index 8c0b446d..1866543c 100644
--- a/spec/example-simple-answers.c
+++ b/spec/example-simple-answers.c
@@ -8,9 +8,9 @@
 #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 *this_context,
+void this_callbackfn(getdns_context *this_context,
                      getdns_callback_type_t this_callback_type,
-                     struct getdns_dict *this_response, 
+                     getdns_dict *this_response, 
                      void *this_userarg,
                      getdns_transaction_t this_transaction_id)
 {
@@ -28,7 +28,7 @@ void this_callbackfn(struct getdns_context *this_context,
 			getdns_dict_destroy(this_response);
 			return;
 		}
-		struct getdns_list * just_the_addresses_ptr;
+		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"
 		{
@@ -41,10 +41,10 @@ void this_callbackfn(struct getdns_context *this_context,
 		/* Go through each record */
 		for ( size_t rec_count = 0; rec_count < num_addresses; ++rec_count )
 		{
-			struct getdns_dict * this_address;
+			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;
+			getdns_bindata * this_address_data;
 			this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); // Ignore any error
 			char *this_address_str = getdns_display_ip_address(this_address_data);
 			printf("The address is %s\n", this_address_str);
@@ -61,7 +61,7 @@ void this_callbackfn(struct getdns_context *this_context,
 int main()
 {
 	/* Create the DNS context for this call */
-	struct getdns_context *this_context = NULL;
+	getdns_context *this_context = NULL;
 	getdns_return_t context_create_return = getdns_context_create(&this_context, 1);
 	if (context_create_return != GETDNS_RETURN_GOOD)
 	{
diff --git a/spec/example-synchronous.c b/spec/example-synchronous.c
index 463a7e61..4095388b 100644
--- a/spec/example-synchronous.c
+++ b/spec/example-synchronous.c
@@ -9,7 +9,7 @@ int main()
 {
 	getdns_return_t this_ret;  /* Holder for all function returns */
 	/* Create the DNS context for this call */
-	struct getdns_context *this_context = NULL;
+	getdns_context *this_context = NULL;
 	getdns_return_t context_create_return = getdns_context_create(&this_context, 1);
 	if (context_create_return != GETDNS_RETURN_GOOD)
 	{
@@ -20,7 +20,7 @@ int main()
 	const char * this_name  = "www.example.com";
 	uint8_t this_request_type = GETDNS_RRTYPE_A;
 	/* Get the A and AAAA records */
-	struct getdns_dict * this_extensions = getdns_dict_create();
+	getdns_dict * 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)
 	{
@@ -29,7 +29,7 @@ int main()
 		getdns_context_destroy(this_context);
 		return(GETDNS_RETURN_GENERIC_ERROR);
 	}
-	struct getdns_dict * this_response = NULL;
+	getdns_dict * this_response = NULL;
 
 	/* Make the call */
 	getdns_return_t dns_request_return = getdns_general_sync(this_context, this_name, this_request_type,
@@ -55,17 +55,17 @@ int main()
 			getdns_context_destroy(this_context);
 			return(GETDNS_RETURN_GENERIC_ERROR);
 		}
-		struct getdns_list * just_the_addresses_ptr;
+		getdns_list * just_the_addresses_ptr;
 		this_ret = getdns_dict_get_list(this_response, "just_address_answers", &just_the_addresses_ptr);  // Ignore any error
 		size_t num_addresses;
 		this_ret = getdns_list_get_length(just_the_addresses_ptr, &num_addresses);  // Ignore any error
 		/* Go through each record */
 		for ( size_t rec_count = 0; rec_count < num_addresses; ++rec_count )
 		{
-			struct getdns_dict * this_address;
+			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;
+			getdns_bindata * this_address_data;
 			this_ret = getdns_dict_get_bindata(this_address, "address_data", &this_address_data); // Ignore any error
 			char *this_address_str = getdns_display_ip_address(this_address_data);
 			printf("The address is %s\n", this_address_str);
diff --git a/spec/example-tree.c b/spec/example-tree.c
index 485b0d7d..f815baee 100644
--- a/spec/example-tree.c
+++ b/spec/example-tree.c
@@ -8,9 +8,9 @@
 #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 *this_context,
+void this_callbackfn(getdns_context *this_context,
                      getdns_callback_type_t this_callback_type,
-                     struct getdns_dict *this_response, 
+                     getdns_dict *this_response, 
                      void *this_userarg,
                      getdns_transaction_t this_transaction_id)
 {
@@ -29,7 +29,7 @@ void this_callbackfn(struct getdns_context *this_context,
 			return;
 		}
 		/* Find all the answers returned */
-		struct getdns_list * these_answers;
+		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)
 		{
@@ -42,20 +42,20 @@ void this_callbackfn(struct getdns_context *this_context,
 		/* Go through each answer */
 		for ( size_t rec_count = 0; rec_count < num_answers; ++rec_count )
 		{
-			struct getdns_dict * this_record;
+			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;
+			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;
 			this_ret = getdns_list_get_length(this_answer, &num_rrs);
 			for ( size_t rr_count = 0; rr_count < num_rrs; ++rr_count )
 			{
-				struct getdns_dict *this_rr = NULL;
+				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;
+				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;
@@ -63,7 +63,7 @@ void this_callbackfn(struct getdns_context *this_context,
 				/* If it is type A or AAAA, print the value */
 				if (this_type == GETDNS_RRTYPE_A)
 				{
-					struct getdns_bindata * this_a_record = NULL;
+					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)
 					{
@@ -78,7 +78,7 @@ void this_callbackfn(struct getdns_context *this_context,
 				}
 				else if (this_type == GETDNS_RRTYPE_AAAA)
 				{
-					struct getdns_bindata * this_aaaa_record = NULL;
+					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)
 					{
@@ -104,7 +104,7 @@ void this_callbackfn(struct getdns_context *this_context,
 int main()
 {
 	/* Create the DNS context for this call */
-	struct getdns_context *this_context = NULL;
+	getdns_context *this_context = NULL;
 	getdns_return_t context_create_return = getdns_context_create(&this_context, 1);
 	if (context_create_return != GETDNS_RETURN_GOOD)
 	{
diff --git a/spec/getdns-0.399.tgz b/spec/getdns-0.399.tgz
deleted file mode 100644
index 60f6d493281f4c1a521dde546378ed122f9f97a1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39280
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
QyF{VOpQryp`-h44KNu;`fB*mh

diff --git a/spec/getdns-0.400.tgz b/spec/getdns-0.400.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..682db34509955e34e6f2c5787f4320b9a4532b8a
GIT binary patch
literal 39228
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

literal 0
HcmV?d00001

diff --git a/spec/getdns_core_only.c b/spec/getdns_core_only.c
index c86b4425..ca69a26e 100644
--- a/spec/getdns_core_only.c
+++ b/spec/getdns_core_only.c
@@ -9,10 +9,10 @@ int main(){ return(0); }
 
 getdns_return_t
 getdns_general(
-  struct getdns_context      *context,
+  getdns_context      *context,
   const char                 *name,
   uint16_t                   request_type,
-  struct getdns_dict         *extensions,
+  getdns_dict         *extensions,
   void                       *userarg,
   getdns_transaction_t       *transaction_id,
   getdns_callback_t          callback
@@ -22,9 +22,9 @@ UNUSED_PARAM(transaction_id); UNUSED_PARAM(callback); return GETDNS_RETURN_GOOD;
 
 getdns_return_t
 getdns_address(
-  struct getdns_context      *context,
+  getdns_context      *context,
   const char                 *name,
-  struct getdns_dict         *extensions,
+  getdns_dict         *extensions,
   void                       *userarg,
   getdns_transaction_t       *transaction_id,
   getdns_callback_t          callback
@@ -34,9 +34,9 @@ UNUSED_PARAM(transaction_id); UNUSED_PARAM(callback); return GETDNS_RETURN_GOOD;
 
 getdns_return_t
 getdns_hostname(
-  struct getdns_context      *context,
-  struct getdns_dict         *address,
-  struct getdns_dict         *extensions,
+  getdns_context      *context,
+  getdns_dict         *address,
+  getdns_dict         *extensions,
   void                       *userarg,
   getdns_transaction_t       *transaction_id,
   getdns_callback_t          callback
@@ -46,9 +46,9 @@ UNUSED_PARAM(transaction_id); UNUSED_PARAM(callback); return GETDNS_RETURN_GOOD;
 
 getdns_return_t
 getdns_service(
-  struct getdns_context      *context,
+  getdns_context      *context,
   const char                 *name,
-  struct getdns_dict         *extensions,
+  getdns_dict         *extensions,
   void                       *userarg,
   getdns_transaction_t       *transaction_id,
   getdns_callback_t          callback
@@ -58,14 +58,14 @@ UNUSED_PARAM(transaction_id); UNUSED_PARAM(callback); return GETDNS_RETURN_GOOD;
 
 getdns_return_t
 getdns_context_create(
-    struct getdns_context   **context,
+    getdns_context   **context,
     int                     set_from_os
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(set_from_os); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_create_with_memory_functions(
-  struct getdns_context  **context,
+  getdns_context  **context,
   int                    set_from_os,
   void                   *(*malloc)(size_t),
   void                   *(*realloc)(void *, size_t),
@@ -77,7 +77,7 @@ getdns_context_create_with_memory_functions(
 
 getdns_return_t
 getdns_context_create_with_extended_memory_functions(
-  struct getdns_context  **context,
+  getdns_context  **context,
   int                    set_from_os,
   void                   *userarg,
   void                   *(*malloc)(void *userarg, size_t),
@@ -90,109 +90,109 @@ getdns_context_create_with_extended_memory_functions(
 
 void
 getdns_context_destroy(
-	struct getdns_context  *context
+	getdns_context  *context
 )
 { UNUSED_PARAM(context); }
 
 getdns_return_t
 getdns_cancel_callback(
-	struct getdns_context      *context,
+	getdns_context      *context,
 	getdns_transaction_t       transaction_id
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(transaction_id); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_general_sync(
-  struct getdns_context  *context,
+  getdns_context  *context,
   const char             *name,
   uint16_t               request_type,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_dict     *extensions,
+  getdns_dict     **response
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(name); UNUSED_PARAM(request_type); UNUSED_PARAM(extensions);
 UNUSED_PARAM(response); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_address_sync(
-  struct getdns_context  *context,
+  getdns_context  *context,
   const char             *name,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_dict     *extensions,
+  getdns_dict     **response
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(name); UNUSED_PARAM(extensions);
 UNUSED_PARAM(response); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_hostname_sync(
-  struct getdns_context  *context,
-  struct getdns_dict     *address,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  getdns_dict     *address,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(address); UNUSED_PARAM(extensions);
 UNUSED_PARAM(response); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_service_sync(
-  struct getdns_context  *context,
+  getdns_context  *context,
   const char             *name,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_dict     *extensions,
+  getdns_dict     **response
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(name); UNUSED_PARAM(extensions);
 UNUSED_PARAM(response); return GETDNS_RETURN_GOOD; }
 
 void
 getdns_free_sync_request_memory(
-  struct getdns_dict     *response
+  getdns_dict     *response
 )
 { UNUSED_PARAM(response); }
 
-getdns_return_t getdns_list_get_length(const struct getdns_list *this_list, size_t *answer)
+getdns_return_t getdns_list_get_length(const getdns_list *this_list, size_t *answer)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_get_data_type(const struct getdns_list *this_list, size_t index, getdns_data_type *answer)
+getdns_return_t getdns_list_get_data_type(const getdns_list *this_list, size_t index, getdns_data_type *answer)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_get_dict(const struct getdns_list *this_list, size_t index, struct getdns_dict **answer)
+getdns_return_t getdns_list_get_dict(const getdns_list *this_list, size_t index, getdns_dict **answer)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_get_list(const struct getdns_list *this_list, size_t index, struct getdns_list **answer)
+getdns_return_t getdns_list_get_list(const getdns_list *this_list, size_t index, getdns_list **answer)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_get_bindata(const struct getdns_list *this_list, size_t index, struct getdns_bindata **answer)
+getdns_return_t getdns_list_get_bindata(const getdns_list *this_list, size_t index, getdns_bindata **answer)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_get_int(const struct getdns_list *this_list, size_t index, uint32_t *answer)
+getdns_return_t getdns_list_get_int(const getdns_list *this_list, size_t index, uint32_t *answer)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_get_names(const struct getdns_dict *this_dict, struct getdns_list **answer)
+getdns_return_t getdns_dict_get_names(const getdns_dict *this_dict, getdns_list **answer)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_get_data_type(const struct getdns_dict *this_dict, const char *name, getdns_data_type *answer)
+getdns_return_t getdns_dict_get_data_type(const getdns_dict *this_dict, const char *name, getdns_data_type *answer)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_get_dict(const struct getdns_dict *this_dict, const char *name, struct getdns_dict **answer)
+getdns_return_t getdns_dict_get_dict(const getdns_dict *this_dict, const char *name, getdns_dict **answer)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_get_list(const struct getdns_dict *this_dict, const char *name, struct getdns_list **answer)
+getdns_return_t getdns_dict_get_list(const getdns_dict *this_dict, const char *name, getdns_list **answer)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_get_bindata(const struct getdns_dict *this_dict, const char *name, struct getdns_bindata **answer)
+getdns_return_t getdns_dict_get_bindata(const getdns_dict *this_dict, const char *name, getdns_bindata **answer)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_get_int(const struct getdns_dict *this_dict, const char *name, uint32_t *answer)
+getdns_return_t getdns_dict_get_int(const getdns_dict *this_dict, const char *name, uint32_t *answer)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(answer); return GETDNS_RETURN_GOOD; }
 
-struct getdns_list * getdns_list_create()
+getdns_list * getdns_list_create()
 { return NULL; }
 
-struct getdns_list * getdns_list_create_with_context(
-  struct getdns_context *context
+getdns_list * getdns_list_create_with_context(
+  getdns_context *context
 )
 { UNUSED_PARAM(context); return NULL; }
 
-struct getdns_list * getdns_list_create_with_memory_functions(
+getdns_list * getdns_list_create_with_memory_functions(
   void *(*malloc)(size_t),
   void *(*realloc)(void *, size_t),
   void (*free)(void *)
@@ -200,7 +200,7 @@ struct getdns_list * getdns_list_create_with_memory_functions(
 { UNUSED_PARAM(malloc); UNUSED_PARAM(realloc); UNUSED_PARAM(free);
   return NULL; }
 
-struct getdns_list * getdns_list_create_with_extended_memory_functions(
+getdns_list * getdns_list_create_with_extended_memory_functions(
   void *userarg,
   void *(*malloc)(void *userarg, size_t),
   void *(*realloc)(void *userarg, void *, size_t),
@@ -210,30 +210,30 @@ struct getdns_list * getdns_list_create_with_extended_memory_functions(
   UNUSED_PARAM(malloc); UNUSED_PARAM(realloc); UNUSED_PARAM(free);
   return NULL; }
 
-void getdns_list_destroy(struct getdns_list *this_list)
+void getdns_list_destroy(getdns_list *this_list)
 { UNUSED_PARAM(this_list); }
 
-getdns_return_t getdns_list_set_dict(struct getdns_list *this_list, size_t index, const struct getdns_dict *child_dict)
+getdns_return_t getdns_list_set_dict(getdns_list *this_list, size_t index, const getdns_dict *child_dict)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(child_dict); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_set_list(struct getdns_list *this_list, size_t index, const struct getdns_list *child_list)
+getdns_return_t getdns_list_set_list(getdns_list *this_list, size_t index, const getdns_list *child_list)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(child_list); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_set_bindata(struct getdns_list *this_list, size_t index, const struct getdns_bindata *child_bindata)
+getdns_return_t getdns_list_set_bindata(getdns_list *this_list, size_t index, const getdns_bindata *child_bindata)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(child_bindata); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_list_set_int(struct getdns_list *this_list, size_t index, uint32_t child_uint32)
+getdns_return_t getdns_list_set_int(getdns_list *this_list, size_t index, uint32_t child_uint32)
 { UNUSED_PARAM(this_list); UNUSED_PARAM(index); UNUSED_PARAM(child_uint32); return GETDNS_RETURN_GOOD; }
 
-struct getdns_dict * getdns_dict_create()
+getdns_dict * getdns_dict_create()
 { return NULL; }
 
-struct getdns_dict * getdns_dict_create_with_context(
-  struct getdns_context *context
+getdns_dict * getdns_dict_create_with_context(
+  getdns_context *context
 )
 { UNUSED_PARAM(context); return NULL; }
 
-struct getdns_dict * getdns_dict_create_with_memory_functions(
+getdns_dict * getdns_dict_create_with_memory_functions(
   void *(*malloc)(size_t),
   void *(*realloc)(void *, size_t),
   void (*free)(void *)
@@ -241,7 +241,7 @@ struct getdns_dict * getdns_dict_create_with_memory_functions(
 { UNUSED_PARAM(malloc); UNUSED_PARAM(realloc); UNUSED_PARAM(free);
   return NULL; }
 
-struct getdns_dict * getdns_dict_create_with_extended_memory_functions(
+getdns_dict * getdns_dict_create_with_extended_memory_functions(
   void *userarg,
   void *(*malloc)(void *userarg, size_t),
   void *(*realloc)(void *userarg, void *, size_t),
@@ -251,27 +251,27 @@ struct getdns_dict * getdns_dict_create_with_extended_memory_functions(
   UNUSED_PARAM(malloc); UNUSED_PARAM(realloc); UNUSED_PARAM(free);
   return NULL; }
 
-void getdns_dict_destroy(struct getdns_dict *this_dict)
+void getdns_dict_destroy(getdns_dict *this_dict)
 { UNUSED_PARAM(this_dict); }
 
-getdns_return_t getdns_dict_set_dict(struct getdns_dict *this_dict, const char *name, const struct getdns_dict *child_dict)
+getdns_return_t getdns_dict_set_dict(getdns_dict *this_dict, const char *name, const getdns_dict *child_dict)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(child_dict); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_set_list(struct getdns_dict *this_dict, const char *name, const struct getdns_list *child_list)
+getdns_return_t getdns_dict_set_list(getdns_dict *this_dict, const char *name, const getdns_list *child_list)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(child_list); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_set_bindata(struct getdns_dict *this_dict, const char *name, const struct getdns_bindata *child_bindata)
+getdns_return_t getdns_dict_set_bindata(getdns_dict *this_dict, const char *name, const getdns_bindata *child_bindata)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(child_bindata); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_set_int(struct getdns_dict *this_dict, const char *name, uint32_t child_uint32)
+getdns_return_t getdns_dict_set_int(getdns_dict *this_dict, const char *name, uint32_t child_uint32)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); UNUSED_PARAM(child_uint32); return GETDNS_RETURN_GOOD; }
 
-getdns_return_t getdns_dict_remove_name(struct getdns_dict *this_dict, const char *name)
+getdns_return_t getdns_dict_remove_name(getdns_dict *this_dict, const char *name)
 { UNUSED_PARAM(this_dict); UNUSED_PARAM(name); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_convert_dns_name_to_fqdn(
-  const struct getdns_bindata *dns_name_wire_fmt,
+  const getdns_bindata *dns_name_wire_fmt,
   char **fqdn_as_string
 )
 { UNUSED_PARAM(dns_name_wire_fmt); UNUSED_PARAM(fqdn_as_string); return GETDNS_RETURN_GOOD; }
@@ -279,7 +279,7 @@ getdns_convert_dns_name_to_fqdn(
 getdns_return_t
 getdns_convert_fqdn_to_dns_name(
   const char *fqdn_as_string,
-  struct getdns_bindata **dns_name_wire_fmt
+  getdns_bindata **dns_name_wire_fmt
 )
 { UNUSED_PARAM(fqdn_as_string); UNUSED_PARAM(dns_name_wire_fmt);  return GETDNS_RETURN_GOOD; }
 
@@ -297,9 +297,9 @@ getdns_convert_alabel_to_ulabel(
 
 getdns_return_t
 getdns_validate_dnssec(
-  struct getdns_list     *record_to_validate,
-  struct getdns_list     *bundle_of_support_records,
-  struct getdns_list     *trust_anchor_rdatas
+  getdns_list     *record_to_validate,
+  getdns_list     *bundle_of_support_records,
+  getdns_list     *trust_anchor_rdatas
 )
 { UNUSED_PARAM(record_to_validate); UNUSED_PARAM(bundle_of_support_records); UNUSED_PARAM(trust_anchor_rdatas);
 return GETDNS_RETURN_GOOD; }
@@ -307,33 +307,33 @@ return GETDNS_RETURN_GOOD; }
 
 char *
 getdns_pretty_print_dict(
-	const struct getdns_dict     *some_dict
+	const getdns_dict     *some_dict
 )
 { UNUSED_PARAM(some_dict); return NULL; }
 
 char *
 getdns_display_ip_address(
-  const struct getdns_bindata    *bindata_of_ipv4_or_ipv6_address
+  const getdns_bindata    *bindata_of_ipv4_or_ipv6_address
 )
 { UNUSED_PARAM(bindata_of_ipv4_or_ipv6_address); return NULL; }
 
 getdns_return_t
 getdns_context_set_context_update_callback(
-  struct getdns_context  *context,
-  void                   (*value)(struct getdns_context *context, getdns_context_code_t changed_item)
+  getdns_context  *context,
+  void                   (*value)(getdns_context *context, getdns_context_code_t changed_item)
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_resolution_type(
-  struct getdns_context  *context,
+  getdns_context  *context,
   getdns_resolution_t    value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_namespaces(
-  struct getdns_context  *context,
+  getdns_context  *context,
   size_t                 namespace_count,
   getdns_namespace_t      *namespaces
 )
@@ -342,105 +342,105 @@ return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_dns_transport(
-  struct getdns_context  *context,
+  getdns_context  *context,
   getdns_transport_t     value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_limit_outstanding_queries(
-  struct getdns_context  *context,
+  getdns_context  *context,
   uint16_t               limit
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(limit); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_timeout(
-  struct getdns_context  *context,
+  getdns_context  *context,
   uint64_t           timeout
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(timeout); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_follow_redirects(
-  struct getdns_context  *context,
+  getdns_context  *context,
   getdns_redirects_t     value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_dns_root_servers(
-  struct getdns_context  *context,
-  struct getdns_list     *addresses
+  getdns_context  *context,
+  getdns_list     *addresses
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(addresses); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_append_name(
-  struct getdns_context  *context,
+  getdns_context  *context,
   getdns_append_name_t   value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_suffix(
-  struct getdns_context  *context,
-  struct getdns_list     *value
+  getdns_context  *context,
+  getdns_list     *value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_dnssec_trust_anchors(
-  struct getdns_context  *context,
-  struct getdns_list     *value
+  getdns_context  *context,
+  getdns_list     *value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_dnssec_allowed_skew(
-  struct getdns_context  *context,
+  getdns_context  *context,
   unsigned int           value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_upstream_recursive_servers(
-  struct getdns_context  *context,
-  struct getdns_list     *upstream_list
+  getdns_context  *context,
+  getdns_list     *upstream_list
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(upstream_list); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_edns_maximum_udp_payload_size(
-  struct getdns_context  *context,
+  getdns_context  *context,
   uint16_t               value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_edns_extended_rcode(
-  struct getdns_context  *context,
+  getdns_context  *context,
   uint8_t                value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_edns_version(
-  struct getdns_context  *context,
+  getdns_context  *context,
   uint8_t                value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_edns_do_bit(
-  struct getdns_context  *context,
+  getdns_context  *context,
   uint8_t                value
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(value); return GETDNS_RETURN_GOOD; }
 
 getdns_return_t
 getdns_context_set_memory_functions(
-  struct getdns_context *context,
+  getdns_context *context,
   void                  *(*malloc) (size_t),
   void                  *(*realloc) (void *, size_t),
   void                  (*free) (void *)
@@ -451,7 +451,7 @@ getdns_context_set_memory_functions(
 
 getdns_return_t
 getdns_context_set_extended_memory_functions(
-  struct getdns_context *context,
+  getdns_context *context,
   void                  *userarg,
   void                  *(*malloc)(void *userarg, size_t sz),
   void                  *(*realloc)(void *userarg, void *ptr, size_t sz),
@@ -464,7 +464,7 @@ getdns_context_set_extended_memory_functions(
 
 getdns_return_t
 getdns_extension_set_libevent_base(
-    struct getdns_context  *context,
+    getdns_context  *context,
     struct event_base      *this_event_base
 )
 { UNUSED_PARAM(context); UNUSED_PARAM(this_event_base); return GETDNS_RETURN_GOOD; }
diff --git a/spec/getdns_core_only.h b/spec/getdns_core_only.h
index 389dd753..9bcab902 100644
--- a/spec/getdns_core_only.h
+++ b/spec/getdns_core_only.h
@@ -1,4 +1,4 @@
-/* Created at 2014-02-19-10-58-16*/
+/* Created at 2014-02-19-15-06-22*/
 #ifndef GETDNS_H
 #define GETDNS_H
 
@@ -314,89 +314,89 @@ typedef enum getdns_callback_type_t {
 #define GETDNS_RCODE_BADTRUNC 22
 
 /* Various typedefs  */
-struct getdns_context;
+typedef struct getdns_context getdns_context;
 typedef uint64_t   getdns_transaction_t;
 typedef enum getdns_data_type {
     t_dict, t_list, t_int, t_bindata
 } getdns_data_type;
-struct getdns_bindata {
+typedef struct getdns_bindata {
     size_t size;
     uint8_t *data;
-};
-struct getdns_dict;
-struct getdns_list;
+} getdns_bindata;
+typedef struct getdns_dict getdns_dict;
+typedef struct getdns_list getdns_list;
 
 /* Helper functions for data structures */
 
 /* Lists: get the length, get the data_type of the value at a given
    position, and get the data at a given position */
-getdns_return_t getdns_list_get_length(const struct getdns_list *this_list, size_t *answer);
-getdns_return_t getdns_list_get_data_type(const struct getdns_list *this_list, size_t index, getdns_data_type *answer);
-getdns_return_t getdns_list_get_dict(const struct getdns_list *this_list, size_t index, struct getdns_dict **answer);
-getdns_return_t getdns_list_get_list(const struct getdns_list *this_list, size_t index, struct getdns_list **answer);
-getdns_return_t getdns_list_get_bindata(const struct getdns_list *this_list, size_t index, struct getdns_bindata **answer);
-getdns_return_t getdns_list_get_int(const struct getdns_list *this_list, size_t index, uint32_t *answer);
+getdns_return_t getdns_list_get_length(const getdns_list *this_list, size_t *answer);
+getdns_return_t getdns_list_get_data_type(const getdns_list *this_list, size_t index, getdns_data_type *answer);
+getdns_return_t getdns_list_get_dict(const getdns_list *this_list, size_t index, getdns_dict **answer);
+getdns_return_t getdns_list_get_list(const getdns_list *this_list, size_t index, getdns_list **answer);
+getdns_return_t getdns_list_get_bindata(const getdns_list *this_list, size_t index, getdns_bindata **answer);
+getdns_return_t getdns_list_get_int(const getdns_list *this_list, size_t index, uint32_t *answer);
 
 /* Dicts: get the list of names, get the data_type of the
    value at a given name, and get the data at a given name */
-getdns_return_t getdns_dict_get_names(const struct getdns_dict *this_dict, struct getdns_list **answer);
-getdns_return_t getdns_dict_get_data_type(const struct getdns_dict *this_dict, const char *name, getdns_data_type *answer);
-getdns_return_t getdns_dict_get_dict(const struct getdns_dict *this_dict, const char *name, struct getdns_dict **answer);
-getdns_return_t getdns_dict_get_list(const struct getdns_dict *this_dict, const char *name, struct getdns_list **answer);
-getdns_return_t getdns_dict_get_bindata(const struct getdns_dict *this_dict, const char *name, struct getdns_bindata **answer);
-getdns_return_t getdns_dict_get_int(const struct getdns_dict *this_dict, const char *name, uint32_t *answer);
+getdns_return_t getdns_dict_get_names(const getdns_dict *this_dict, getdns_list **answer);
+getdns_return_t getdns_dict_get_data_type(const getdns_dict *this_dict, const char *name, getdns_data_type *answer);
+getdns_return_t getdns_dict_get_dict(const getdns_dict *this_dict, const char *name, getdns_dict **answer);
+getdns_return_t getdns_dict_get_list(const getdns_dict *this_dict, const char *name, getdns_list **answer);
+getdns_return_t getdns_dict_get_bindata(const getdns_dict *this_dict, const char *name, getdns_bindata **answer);
+getdns_return_t getdns_dict_get_int(const getdns_dict *this_dict, const char *name, uint32_t *answer);
 
 
 /* Lists: create, destroy, and set the data at a given position */
-struct getdns_list * getdns_list_create();
-struct getdns_list * getdns_list_create_with_context(
-  struct getdns_context *context
+getdns_list * getdns_list_create();
+getdns_list * getdns_list_create_with_context(
+  getdns_context *context
 );
-struct getdns_list * getdns_list_create_with_memory_functions(
+getdns_list * getdns_list_create_with_memory_functions(
   void *(*malloc)(size_t),
   void *(*realloc)(void *, size_t),
   void (*free)(void *)
 );
-struct getdns_list * getdns_list_create_with_extended_memory_functions(
+getdns_list * getdns_list_create_with_extended_memory_functions(
   void *userarg,
   void *(*malloc)(void *userarg, size_t),
   void *(*realloc)(void *userarg, void *, size_t),
   void (*free)(void *userarg, void *)
 );
-void getdns_list_destroy(struct getdns_list *this_list);
-getdns_return_t getdns_list_set_dict(struct getdns_list *this_list, size_t index, const struct getdns_dict *child_dict);
-getdns_return_t getdns_list_set_list(struct getdns_list *this_list, size_t index, const struct getdns_list *child_list);
-getdns_return_t getdns_list_set_bindata(struct getdns_list *this_list, size_t index, const struct getdns_bindata *child_bindata);
-getdns_return_t getdns_list_set_int(struct getdns_list *this_list, size_t index, uint32_t child_uint32);
+void getdns_list_destroy(getdns_list *this_list);
+getdns_return_t getdns_list_set_dict(getdns_list *this_list, size_t index, const getdns_dict *child_dict);
+getdns_return_t getdns_list_set_list(getdns_list *this_list, size_t index, const getdns_list *child_list);
+getdns_return_t getdns_list_set_bindata(getdns_list *this_list, size_t index, const getdns_bindata *child_bindata);
+getdns_return_t getdns_list_set_int(getdns_list *this_list, size_t index, uint32_t child_uint32);
 
 /* Dicts: create, destroy, and set the data at a given name */
-struct getdns_dict * getdns_dict_create();
-struct getdns_dict * getdns_dict_create_with_context(
-  struct getdns_context *context
+getdns_dict * getdns_dict_create();
+getdns_dict * getdns_dict_create_with_context(
+  getdns_context *context
 );
-struct getdns_dict * getdns_dict_create_with_memory_functions(
+getdns_dict * getdns_dict_create_with_memory_functions(
   void *(*malloc)(size_t),
   void *(*realloc)(void *, size_t),
   void (*free)(void *)
 );
-struct getdns_dict * getdns_dict_create_with_extended_memory_functions(
+getdns_dict * getdns_dict_create_with_extended_memory_functions(
   void *userarg,
   void *(*malloc)(void *userarg, size_t),
   void *(*realloc)(void *userarg, void *, size_t),
   void (*free)(void *userarg, void *)
 );
-void getdns_dict_destroy(struct getdns_dict *this_dict);
-getdns_return_t getdns_dict_set_dict(struct getdns_dict *this_dict, const char *name, const struct getdns_dict *child_dict);
-getdns_return_t getdns_dict_set_list(struct getdns_dict *this_dict, const char *name, const struct getdns_list *child_list);
-getdns_return_t getdns_dict_set_bindata(struct getdns_dict *this_dict, const char *name, const struct getdns_bindata *child_bindata);
-getdns_return_t getdns_dict_set_int(struct getdns_dict *this_dict, const char *name, uint32_t child_uint32);
-getdns_return_t getdns_dict_remove_name(struct getdns_dict *this_dict, const char *name);
+void getdns_dict_destroy(getdns_dict *this_dict);
+getdns_return_t getdns_dict_set_dict(getdns_dict *this_dict, const char *name, const getdns_dict *child_dict);
+getdns_return_t getdns_dict_set_list(getdns_dict *this_dict, const char *name, const getdns_list *child_list);
+getdns_return_t getdns_dict_set_bindata(getdns_dict *this_dict, const char *name, const getdns_bindata *child_bindata);
+getdns_return_t getdns_dict_set_int(getdns_dict *this_dict, const char *name, uint32_t child_uint32);
+getdns_return_t getdns_dict_remove_name(getdns_dict *this_dict, const char *name);
 
 /* Callback arguments */
 typedef void (*getdns_callback_t)(
-                                  struct getdns_context  *context,
+                                  getdns_context         *context,
                                   getdns_callback_type_t callback_type,
-                                  struct getdns_dict     *response,
+                                  getdns_dict            *response,
                                   void                   *userarg,
                                   getdns_transaction_t   transaction_id);
 
@@ -404,120 +404,120 @@ typedef void (*getdns_callback_t)(
 
 getdns_return_t
 getdns_general(
-  struct getdns_context  *context,
-  const char             *name,
-  uint16_t               request_type,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  const char            *name,
+  uint16_t              request_type,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 getdns_return_t
 getdns_address(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  const char            *name,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 getdns_return_t
 getdns_hostname(
-  struct getdns_context  *context,
-  struct getdns_dict     *address,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  getdns_dict           *address,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 getdns_return_t
 getdns_service(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  const char            *name,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 
 getdns_return_t
 getdns_context_create(
-  struct getdns_context  **context,
-  int                    set_from_os
+  getdns_context  **context,
+  int             set_from_os
 );
 
 getdns_return_t
 getdns_context_create_with_memory_functions(
-  struct getdns_context  **context,
-  int                    set_from_os,
-  void                   *(*malloc)(size_t),
-  void                   *(*realloc)(void *, size_t),
-  void                   (*free)(void *)
+  getdns_context  **context,
+  int             set_from_os,
+  void            *(*malloc)(size_t),
+  void            *(*realloc)(void *, size_t),
+  void            (*free)(void *)
 );
 getdns_return_t
 getdns_context_create_with_extended_memory_functions(
-  struct getdns_context  **context,
-  int                    set_from_os,
-  void                   *userarg,
-  void                   *(*malloc)(void *userarg, size_t),
-  void                   *(*realloc)(void *userarg, void *, size_t),
-  void                   (*free)(void *userarg, void *)
+  getdns_context  **context,
+  int             set_from_os,
+  void            *userarg,
+  void            *(*malloc)(void *userarg, size_t),
+  void            *(*realloc)(void *userarg, void *, size_t),
+  void            (*free)(void *userarg, void *)
 );
 
 void
 getdns_context_destroy(
-  struct getdns_context   *context
+  getdns_context   *context
 );
 
 getdns_return_t
 getdns_cancel_callback(
-  struct getdns_context  *context,
-  getdns_transaction_t   transaction_id
+  getdns_context        *context,
+  getdns_transaction_t  transaction_id
 );
 
 getdns_return_t
 getdns_general_sync(
-  struct getdns_context  *context,
-  const char             *name,
-  uint16_t               request_type,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  const char      *name,
+  uint16_t        request_type,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 
 getdns_return_t
 getdns_address_sync(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  const char      *name,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 
 getdns_return_t
 getdns_hostname_sync(
-  struct getdns_context  *context,
-  struct getdns_dict     *address,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  getdns_dict     *address,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 
 getdns_return_t
 getdns_service_sync(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  const char      *name,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 
 getdns_return_t
 getdns_convert_dns_name_to_fqdn(
-  const struct getdns_bindata *dns_name_wire_fmt,
+  const getdns_bindata *dns_name_wire_fmt,
   char **fqdn_as_string
 );
 
 getdns_return_t
 getdns_convert_fqdn_to_dns_name(
   const char *fqdn_as_string,
-  struct getdns_bindata **dns_name_wire_fmt
+  getdns_bindata **dns_name_wire_fmt
 );
 
 char *
@@ -532,139 +532,139 @@ getdns_convert_alabel_to_ulabel(
 
 getdns_return_t
 getdns_validate_dnssec(
-  struct getdns_list     *record_to_validate,
-  struct getdns_list     *bundle_of_support_records,
-  struct getdns_list     *trust_anchor_rdatas
+  getdns_list     *record_to_validate,
+  getdns_list     *bundle_of_support_records,
+  getdns_list     *trust_anchor_records
 );
 
 char *
 getdns_pretty_print_dict(
-  const struct getdns_dict     *some_dict
+  const getdns_dict  *some_dict
 );
 
 char *
 getdns_display_ip_address(
-  const struct getdns_bindata        *bindata_of_ipv4_or_ipv6_address
+  const getdns_bindata  *bindata_of_ipv4_or_ipv6_address
 );
 
 getdns_return_t
 getdns_context_set_context_update_callback(
-  struct getdns_context  *context,
-  void                   (*value)(struct getdns_context *context, getdns_context_code_t changed_item)
+  getdns_context  *context,
+  void            (*value)(getdns_context *context, getdns_context_code_t changed_item)
 );
 
 getdns_return_t
 getdns_context_set_resolution_type(
-  struct getdns_context  *context,
-  getdns_resolution_t    value
+  getdns_context       *context,
+  getdns_resolution_t  value
 );
 
 getdns_return_t
 getdns_context_set_namespaces(
-  struct getdns_context  *context,
-  size_t                 namespace_count,
-  getdns_namespace_t     *namespaces
+  getdns_context      *context,
+  size_t              namespace_count,
+  getdns_namespace_t  *namespaces
 );
 
 getdns_return_t
 getdns_context_set_dns_transport(
-  struct getdns_context  *context,
-  getdns_transport_t     value
+  getdns_context      *context,
+  getdns_transport_t  value
 );
 
 getdns_return_t
 getdns_context_set_limit_outstanding_queries(
-  struct getdns_context  *context,
-  uint16_t               limit
+  getdns_context  *context,
+  uint16_t        limit
 );
 
 getdns_return_t
 getdns_context_set_timeout(
-  struct getdns_context  *context,
-  uint64_t               timeout
+  getdns_context  *context,
+  uint64_t        timeout
 );
 
 getdns_return_t
 getdns_context_set_follow_redirects(
-  struct getdns_context  *context,
-  getdns_redirects_t     value
+  getdns_context      *context,
+  getdns_redirects_t  value
 );
 
 getdns_return_t
 getdns_context_set_dns_root_servers(
-  struct getdns_context  *context,
-  struct getdns_list     *addresses
+  getdns_context  *context,
+  getdns_list     *addresses
 );
 
 getdns_return_t
 getdns_context_set_append_name(
-  struct getdns_context  *context,
-  getdns_append_name_t   value
+  getdns_context        *context,
+  getdns_append_name_t  value
 );
 
 getdns_return_t
 getdns_context_set_suffix(
-  struct getdns_context  *context,
-  struct getdns_list     *value
+  getdns_context  *context,
+  getdns_list     *value
 );
 
 getdns_return_t
 getdns_context_set_dnssec_trust_anchors(
-  struct getdns_context  *context,
-  struct getdns_list     *value
+  getdns_context  *context,
+  getdns_list     *value
 );
 
 getdns_return_t
 getdns_context_set_dnssec_allowed_skew(
-  struct getdns_context  *context,
-  uint32_t               value
+  getdns_context  *context,
+  uint32_t        value
 );
 
 getdns_return_t
 getdns_context_set_upstream_recursive_servers(
-  struct getdns_context  *context,
-  struct getdns_list     *upstream_list
+  getdns_context  *context,
+  getdns_list     *upstream_list
 );
 
 getdns_return_t
 getdns_context_set_edns_maximum_udp_payload_size(
-  struct getdns_context  *context,
-  uint16_t               value
+  getdns_context  *context,
+  uint16_t        value
 );
 
 getdns_return_t
 getdns_context_set_edns_extended_rcode(
-  struct getdns_context  *context,
-  uint8_t                value
+  getdns_context  *context,
+  uint8_t         value
 );
 
 getdns_return_t
 getdns_context_set_edns_version(
-  struct getdns_context  *context,
-  uint8_t                value
+  getdns_context  *context,
+  uint8_t         value
 );
 
 getdns_return_t
 getdns_context_set_edns_do_bit(
-  struct getdns_context  *context,
-  uint8_t                value
+  getdns_context  *context,
+  uint8_t         value
 );
 
 getdns_return_t
 getdns_context_set_memory_functions(
-  struct getdns_context *context,
-  void                  *(*malloc) (size_t),
-  void                  *(*realloc) (void *, size_t),
-  void                  (*free) (void *)
+  getdns_context *context,
+  void           *(*malloc) (size_t),
+  void           *(*realloc) (void *, size_t),
+  void           (*free) (void *)
 );
 
 getdns_return_t
 getdns_context_set_extended_memory_functions(
-  struct getdns_context *context,
-  void                  *userarg,
-  void                  *(*malloc)(void *userarg, size_t sz),
-  void                  *(*realloc)(void *userarg, void *ptr, size_t sz),
-  void                  (*free)(void *userarg, void *ptr)
+  getdns_context *context,
+  void           *userarg,
+  void           *(*malloc)(void *userarg, size_t sz),
+  void           *(*realloc)(void *userarg, void *ptr, size_t sz),
+  void           (*free)(void *userarg, void *ptr)
 );
 
 #ifdef __cplusplus
diff --git a/spec/getdns_libevent.h b/spec/getdns_libevent.h
index 1baa4395..70c3f9e1 100644
--- a/spec/getdns_libevent.h
+++ b/spec/getdns_libevent.h
@@ -4,6 +4,6 @@
 /* For libevent, which we are using for these examples */
 getdns_return_t
 getdns_extension_set_libevent_base(
-  struct getdns_context  *context,
-  struct event_base      *this_event_base
+  getdns_context     *context,
+  struct event_base  *this_event_base
 );
diff --git a/spec/index.html b/spec/index.html
index 34e4327c..f03a6617 100644
--- a/spec/index.html
+++ b/spec/index.html
@@ -140,13 +140,13 @@ href="mailto:paul.hoffman@vpnc.org">paul.hoffman@vpnc.org</a>.)</p>
 
 <div class=forh id="getdnsfuncgeneral">getdns_return_t
 getdns_general(
-  struct getdns_context  *context,
-  const char             *name,
-  uint16_t               request_type,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  const char            *name,
+  uint16_t              request_type,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 </div>
 
@@ -208,12 +208,12 @@ href="#ReturnCodes">later in this document</a>.</p>
 
 <div class=forh id="getdnsfuncaddress">getdns_return_t
 getdns_address(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  const char            *name,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 </div>
 
@@ -236,12 +236,12 @@ getdns_address(
 
 <div class=forh id="getdnsfunchostname">getdns_return_t
 getdns_hostname(
-  struct getdns_context  *context,
-  struct getdns_dict     *address,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  getdns_dict           *address,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 </div>
 
@@ -253,12 +253,12 @@ or "IPv6" (which are case-sensitive)) and <code>address_data</code> (whose value
 
 <div class=forh id="getdnsfuncservice">getdns_return_t
 getdns_service(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  void                   *userarg,
-  getdns_transaction_t   *transaction_id,
-  getdns_callback_t      callbackfn
+  getdns_context        *context,
+  const char            *name,
+  getdns_dict           *extensions,
+  void                  *userarg,
+  getdns_transaction_t  *transaction_id,
+  getdns_callback_t     callbackfn
 );
 </div>
 
@@ -277,9 +277,9 @@ returned an error, in which case the callback function is never called.<p>
 as follows:</p>
 <div class=forh id="getdns_callback_t">
 typedef void (*getdns_callback_t)(
-                                  struct getdns_context  *context,
+                                  getdns_context         *context,
                                   getdns_callback_type_t callback_type,
-                                  struct getdns_dict     *response,
+                                  getdns_dict            *response,
                                   void                   *userarg,
                                   getdns_transaction_t   transaction_id);
 </div>
@@ -324,8 +324,8 @@ that affect how DNS calls are made. For most applications, a default context is
 
 <div class=forh>getdns_return_t
 getdns_context_create(
-  struct getdns_context  **context,
-  int                    set_from_os
+  getdns_context  **context,
+  int             set_from_os
 );
 </div>
 
@@ -335,20 +335,20 @@ want <code>set_from_os</code> set to <code>1</code>.</p>
 
 <div class=forh>getdns_return_t
 getdns_context_create_with_memory_functions(
-  struct getdns_context  **context,
-  int                    set_from_os,
-  void                   *(*malloc)(size_t),
-  void                   *(*realloc)(void *, size_t),
-  void                   (*free)(void *)
+  getdns_context  **context,
+  int             set_from_os,
+  void            *(*malloc)(size_t),
+  void            *(*realloc)(void *, size_t),
+  void            (*free)(void *)
 );
 getdns_return_t
 getdns_context_create_with_extended_memory_functions(
-  struct getdns_context  **context,
-  int                    set_from_os,
-  void                   *userarg,
-  void                   *(*malloc)(void *userarg, size_t),
-  void                   *(*realloc)(void *userarg, void *, size_t),
-  void                   (*free)(void *userarg, void *)
+  getdns_context  **context,
+  int             set_from_os,
+  void            *userarg,
+  void            *(*malloc)(void *userarg, size_t),
+  void            *(*realloc)(void *userarg, void *, size_t),
+  void            (*free)(void *userarg, void *)
 );
 </div>
 
@@ -357,7 +357,7 @@ using this context, use the function:</p>
 
 <div class=forh>void
 getdns_context_destroy(
-  struct getdns_context   *context
+  getdns_context   *context
 );
 </div>
 
@@ -374,8 +374,8 @@ all of the needed cleanup is done and callbacks are made.</p>
 
 <div class=forh>getdns_return_t
 getdns_cancel_callback(
-  struct getdns_context  *context,
-  getdns_transaction_t   transaction_id
+  getdns_context        *context,
+  getdns_transaction_t  transaction_id
 );
 </div>
 
@@ -455,38 +455,38 @@ same as the response returned in the callback if you had used the async version
 
 <div class=forh>getdns_return_t
 getdns_general_sync(
-  struct getdns_context  *context,
-  const char             *name,
-  uint16_t               request_type,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  const char      *name,
+  uint16_t        request_type,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 </div>
 
 <div class=forh>getdns_return_t
 getdns_address_sync(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  const char      *name,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 </div>
 
 <div class=forh>getdns_return_t
 getdns_hostname_sync(
-  struct getdns_context  *context,
-  struct getdns_dict     *address,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  getdns_dict     *address,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 </div>
 
 <div class=forh>getdns_return_t
 getdns_service_sync(
-  struct getdns_context  *context,
-  const char             *name,
-  struct getdns_dict     *extensions,
-  struct getdns_dict     **response
+  getdns_context  *context,
+  const char      *name,
+  getdns_dict     *extensions,
+  getdns_dict     **response
 );
 </div>
 
@@ -495,7 +495,7 @@ free the memory from its internal pool.</p>
 
 <pre>void
 getdns_dict_destroy(
-  struct getdns_dict     *response
+  getdns_dict  *response
 );
 </pre>
 
@@ -525,21 +525,21 @@ name-value pairs in a dict is not important.</li>
 <div class=forh id="datagetters">
 /* Lists: get the length, get the data_type of the value at a given
    position, and get the data at a given position */
-getdns_return_t getdns_list_get_length(const struct getdns_list *this_list, size_t *answer);
-getdns_return_t getdns_list_get_data_type(const struct getdns_list *this_list, size_t index, getdns_data_type *answer);
-getdns_return_t getdns_list_get_dict(const struct getdns_list *this_list, size_t index, struct getdns_dict **answer);
-getdns_return_t getdns_list_get_list(const struct getdns_list *this_list, size_t index, struct getdns_list **answer);
-getdns_return_t getdns_list_get_bindata(const struct getdns_list *this_list, size_t index, struct getdns_bindata **answer);
-getdns_return_t getdns_list_get_int(const struct getdns_list *this_list, size_t index, uint32_t *answer);
+getdns_return_t getdns_list_get_length(const getdns_list *this_list, size_t *answer);
+getdns_return_t getdns_list_get_data_type(const getdns_list *this_list, size_t index, getdns_data_type *answer);
+getdns_return_t getdns_list_get_dict(const getdns_list *this_list, size_t index, getdns_dict **answer);
+getdns_return_t getdns_list_get_list(const getdns_list *this_list, size_t index, getdns_list **answer);
+getdns_return_t getdns_list_get_bindata(const getdns_list *this_list, size_t index, getdns_bindata **answer);
+getdns_return_t getdns_list_get_int(const getdns_list *this_list, size_t index, uint32_t *answer);
 
 /* Dicts: get the list of names, get the data_type of the
    value at a given name, and get the data at a given name */
-getdns_return_t getdns_dict_get_names(const struct getdns_dict *this_dict, struct getdns_list **answer);
-getdns_return_t getdns_dict_get_data_type(const struct getdns_dict *this_dict, const char *name, getdns_data_type *answer);
-getdns_return_t getdns_dict_get_dict(const struct getdns_dict *this_dict, const char *name, struct getdns_dict **answer);
-getdns_return_t getdns_dict_get_list(const struct getdns_dict *this_dict, const char *name, struct getdns_list **answer);
-getdns_return_t getdns_dict_get_bindata(const struct getdns_dict *this_dict, const char *name, struct getdns_bindata **answer);
-getdns_return_t getdns_dict_get_int(const struct getdns_dict *this_dict, const char *name, uint32_t *answer);
+getdns_return_t getdns_dict_get_names(const getdns_dict *this_dict, getdns_list **answer);
+getdns_return_t getdns_dict_get_data_type(const getdns_dict *this_dict, const char *name, getdns_data_type *answer);
+getdns_return_t getdns_dict_get_dict(const getdns_dict *this_dict, const char *name, getdns_dict **answer);
+getdns_return_t getdns_dict_get_list(const getdns_dict *this_dict, const char *name, getdns_list **answer);
+getdns_return_t getdns_dict_get_bindata(const getdns_dict *this_dict, const char *name, getdns_bindata **answer);
+getdns_return_t getdns_dict_get_int(const getdns_dict *this_dict, const char *name, uint32_t *answer);
 </div>
 
 <p>All of these helper getter functions return <code>GETDNS_RETURN_GOOD</code> if the call is successful.
@@ -566,49 +566,49 @@ you need to create a dict. The requisite functions are:</p>
 
 <div class=forh id="datasetters">
 /* Lists: create, destroy, and set the data at a given position */
-struct getdns_list * getdns_list_create();
-struct getdns_list * getdns_list_create_with_context(
-  struct getdns_context *context
+getdns_list * getdns_list_create();
+getdns_list * getdns_list_create_with_context(
+  getdns_context *context
 );
-struct getdns_list * getdns_list_create_with_memory_functions(
+getdns_list * getdns_list_create_with_memory_functions(
   void *(*malloc)(size_t),
   void *(*realloc)(void *, size_t),
   void (*free)(void *)
 );
-struct getdns_list * getdns_list_create_with_extended_memory_functions(
+getdns_list * getdns_list_create_with_extended_memory_functions(
   void *userarg,
   void *(*malloc)(void *userarg, size_t),
   void *(*realloc)(void *userarg, void *, size_t),
   void (*free)(void *userarg, void *)
 );
-void getdns_list_destroy(struct getdns_list *this_list);
-getdns_return_t getdns_list_set_dict(struct getdns_list *this_list, size_t index, const struct getdns_dict *child_dict);
-getdns_return_t getdns_list_set_list(struct getdns_list *this_list, size_t index, const struct getdns_list *child_list);
-getdns_return_t getdns_list_set_bindata(struct getdns_list *this_list, size_t index, const struct getdns_bindata *child_bindata);
-getdns_return_t getdns_list_set_int(struct getdns_list *this_list, size_t index, uint32_t child_uint32);
+void getdns_list_destroy(getdns_list *this_list);
+getdns_return_t getdns_list_set_dict(getdns_list *this_list, size_t index, const getdns_dict *child_dict);
+getdns_return_t getdns_list_set_list(getdns_list *this_list, size_t index, const getdns_list *child_list);
+getdns_return_t getdns_list_set_bindata(getdns_list *this_list, size_t index, const getdns_bindata *child_bindata);
+getdns_return_t getdns_list_set_int(getdns_list *this_list, size_t index, uint32_t child_uint32);
 
 /* Dicts: create, destroy, and set the data at a given name */
-struct getdns_dict * getdns_dict_create();
-struct getdns_dict * getdns_dict_create_with_context(
-  struct getdns_context *context
+getdns_dict * getdns_dict_create();
+getdns_dict * getdns_dict_create_with_context(
+  getdns_context *context
 );
-struct getdns_dict * getdns_dict_create_with_memory_functions(
+getdns_dict * getdns_dict_create_with_memory_functions(
   void *(*malloc)(size_t),
   void *(*realloc)(void *, size_t),
   void (*free)(void *)
 );
-struct getdns_dict * getdns_dict_create_with_extended_memory_functions(
+getdns_dict * getdns_dict_create_with_extended_memory_functions(
   void *userarg,
   void *(*malloc)(void *userarg, size_t),
   void *(*realloc)(void *userarg, void *, size_t),
   void (*free)(void *userarg, void *)
 );
-void getdns_dict_destroy(struct getdns_dict *this_dict);
-getdns_return_t getdns_dict_set_dict(struct getdns_dict *this_dict, const char *name, const struct getdns_dict *child_dict);
-getdns_return_t getdns_dict_set_list(struct getdns_dict *this_dict, const char *name, const struct getdns_list *child_list);
-getdns_return_t getdns_dict_set_bindata(struct getdns_dict *this_dict, const char *name, const struct getdns_bindata *child_bindata);
-getdns_return_t getdns_dict_set_int(struct getdns_dict *this_dict, const char *name, uint32_t child_uint32);
-getdns_return_t getdns_dict_remove_name(struct getdns_dict *this_dict, const char *name);
+void getdns_dict_destroy(getdns_dict *this_dict);
+getdns_return_t getdns_dict_set_dict(getdns_dict *this_dict, const char *name, const getdns_dict *child_dict);
+getdns_return_t getdns_dict_set_list(getdns_dict *this_dict, const char *name, const getdns_list *child_list);
+getdns_return_t getdns_dict_set_bindata(getdns_dict *this_dict, const char *name, const getdns_bindata *child_bindata);
+getdns_return_t getdns_dict_set_int(getdns_dict *this_dict, const char *name, uint32_t child_uint32);
+getdns_return_t getdns_dict_remove_name(getdns_dict *this_dict, const char *name);
 </div>
 
 <p>Lists are extended with the <code>getdns_list_set_</code> calls with the <code>index</code> set to the
@@ -639,7 +639,7 @@ results that have been validated with DNSSEC, you might use:</p>
 
 <pre>
 /* . . . */
-struct getdns_dict * this_extensions = getdns_dict_create();
+getdns_dict * this_extensions = getdns_dict_create();
 this_ret = getdns_dict_set_int(this_extensions, "dnssec_return_only_secure", GETDNS_EXTENSION_TRUE);
 /* . . . Do some processing with the extensions and results . . . */
 /* Remember to clean up memory*/
@@ -1127,14 +1127,14 @@ string in FQDN format to bytes in DNS format.</p>
 <div class=forh>
 getdns_return_t
 getdns_convert_dns_name_to_fqdn(
-  const struct getdns_bindata *dns_name_wire_fmt,
+  const getdns_bindata *dns_name_wire_fmt,
   char **fqdn_as_string
 );
 
 getdns_return_t
 getdns_convert_fqdn_to_dns_name(
   const char *fqdn_as_string,
-  struct getdns_bindata **dns_name_wire_fmt
+  getdns_bindata **dns_name_wire_fmt
 );
 </div>
 
@@ -1145,17 +1145,17 @@ The caller is responsible of disposing these allocations with <code>free</code>.
 
 <h2>5.1 A Few Needed Definitions</h2>
 
-<div class=forh id="Various">struct getdns_context;
+<div class=forh id="Various">typedef struct getdns_context getdns_context;
 typedef uint64_t   getdns_transaction_t;
 typedef enum getdns_data_type {
     t_dict, t_list, t_int, t_bindata
 } getdns_data_type;
-struct getdns_bindata {
+typedef struct getdns_bindata {
     size_t size;
     uint8_t *data;
-};
-struct getdns_dict;
-struct getdns_list;
+} getdns_bindata;
+typedef struct getdns_dict getdns_dict;
+typedef struct getdns_list getdns_list;
 </div>
 
 <h2>5.2 <a id="ReturnCodes">Return Codes</a></h2>
@@ -1484,9 +1484,9 @@ function.</p>
 <span class="cp">#define UNUSED_PARAM(x) ((void)(x))</span>
 
 <span class="cm">/* Set up the callback function, which will also do the processing of the results */</span>
-<span class="kt">void</span> <span class="nf">this_callbackfn</span><span class="p">(</span><span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span><span class="p">,</span>
+<span class="kt">void</span> <span class="nf">this_callbackfn</span><span class="p">(</span><span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span><span class="p">,</span>
                      <span class="n">getdns_callback_type_t</span> <span class="n">this_callback_type</span><span class="p">,</span>
-                     <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_response</span><span class="p">,</span> 
+                     <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_response</span><span class="p">,</span> 
                      <span class="kt">void</span> <span class="o">*</span><span class="n">this_userarg</span><span class="p">,</span>
                      <span class="kt">getdns_transaction_t</span> <span class="n">this_transaction_id</span><span class="p">)</span>
 <span class="p">{</span>
@@ -1504,7 +1504,7 @@ function.</p>
             <span class="n">getdns_dict_destroy</span><span class="p">(</span><span class="n">this_response</span><span class="p">);</span>
             <span class="k">return</span><span class="p">;</span>
         <span class="p">}</span>
-        <span class="k">struct</span> <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">just_the_addresses_ptr</span><span class="p">;</span>
+        <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">just_the_addresses_ptr</span><span class="p">;</span>
         <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_list</span><span class="p">(</span><span class="n">this_response</span><span class="p">,</span> <span class="s">&quot;just_address_answers&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">just_the_addresses_ptr</span><span class="p">);</span>
         <span class="k">if</span> <span class="p">(</span><span class="n">this_ret</span> <span class="o">!=</span> <span class="n">GETDNS_RETURN_GOOD</span><span class="p">)</span>  <span class="c1">// This check is really not needed, but prevents a compiler error under &quot;pedantic&quot;</span>
         <span class="p">{</span>
@@ -1517,10 +1517,10 @@ function.</p>
         <span class="cm">/* Go through each record */</span>
         <span class="k">for</span> <span class="p">(</span> <span class="kt">size_t</span> <span class="n">rec_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">rec_count</span> <span class="o">&lt;</span> <span class="n">num_addresses</span><span class="p">;</span> <span class="o">++</span><span class="n">rec_count</span> <span class="p">)</span>
         <span class="p">{</span>
-            <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_address</span><span class="p">;</span>
+            <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_address</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_dict</span><span class="p">(</span><span class="n">just_the_addresses_ptr</span><span class="p">,</span> <span class="n">rec_count</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_address</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
             <span class="cm">/* Just print the address */</span>
-            <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_address_data</span><span class="p">;</span>
+            <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_address_data</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_bindata</span><span class="p">(</span><span class="n">this_address</span><span class="p">,</span> <span class="s">&quot;address_data&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_address_data</span><span class="p">);</span> <span class="c1">// Ignore any error</span>
             <span class="kt">char</span> <span class="o">*</span><span class="n">this_address_str</span> <span class="o">=</span> <span class="n">getdns_display_ip_address</span><span class="p">(</span><span class="n">this_address_data</span><span class="p">);</span>
             <span class="n">printf</span><span class="p">(</span><span class="s">&quot;The address is %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">this_address_str</span><span class="p">);</span>
@@ -1537,7 +1537,7 @@ function.</p>
 <span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
 <span class="p">{</span>
     <span class="cm">/* Create the DNS context for this call */</span>
-    <span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+    <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
     <span class="kt">getdns_return_t</span> <span class="n">context_create_return</span> <span class="o">=</span> <span class="n">getdns_context_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">this_context</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
     <span class="k">if</span> <span class="p">(</span><span class="n">context_create_return</span> <span class="o">!=</span> <span class="n">GETDNS_RETURN_GOOD</span><span class="p">)</span>
     <span class="p">{</span>
@@ -1602,9 +1602,9 @@ their TTLs.</p>
 <span class="cp">#define UNUSED_PARAM(x) ((void)(x))</span>
 
 <span class="cm">/* Set up the callback function, which will also do the processing of the results */</span>
-<span class="kt">void</span> <span class="nf">this_callbackfn</span><span class="p">(</span><span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span><span class="p">,</span>
+<span class="kt">void</span> <span class="nf">this_callbackfn</span><span class="p">(</span><span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span><span class="p">,</span>
                      <span class="n">getdns_callback_type_t</span> <span class="n">this_callback_type</span><span class="p">,</span>
-                     <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_response</span><span class="p">,</span> 
+                     <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_response</span><span class="p">,</span> 
                      <span class="kt">void</span> <span class="o">*</span><span class="n">this_userarg</span><span class="p">,</span>
                      <span class="kt">getdns_transaction_t</span> <span class="n">this_transaction_id</span><span class="p">)</span>
 <span class="p">{</span>
@@ -1623,7 +1623,7 @@ their TTLs.</p>
             <span class="k">return</span><span class="p">;</span>
         <span class="p">}</span>
         <span class="cm">/* Find all the answers returned */</span>
-        <span class="k">struct</span> <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">these_answers</span><span class="p">;</span>
+        <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">these_answers</span><span class="p">;</span>
         <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_list</span><span class="p">(</span><span class="n">this_response</span><span class="p">,</span> <span class="s">&quot;replies_tree&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">these_answers</span><span class="p">);</span>
         <span class="k">if</span> <span class="p">(</span><span class="n">this_ret</span> <span class="o">==</span> <span class="n">GETDNS_RETURN_NO_SUCH_DICT_NAME</span><span class="p">)</span>
         <span class="p">{</span>
@@ -1636,20 +1636,20 @@ their TTLs.</p>
         <span class="cm">/* Go through each answer */</span>
         <span class="k">for</span> <span class="p">(</span> <span class="kt">size_t</span> <span class="n">rec_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">rec_count</span> <span class="o">&lt;</span> <span class="n">num_answers</span><span class="p">;</span> <span class="o">++</span><span class="n">rec_count</span> <span class="p">)</span>
         <span class="p">{</span>
-            <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_record</span><span class="p">;</span>
+            <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_record</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_dict</span><span class="p">(</span><span class="n">these_answers</span><span class="p">,</span> <span class="n">rec_count</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_record</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
             <span class="cm">/* Get the answer section */</span>
-            <span class="k">struct</span> <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">this_answer</span><span class="p">;</span>
+            <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">this_answer</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_list</span><span class="p">(</span><span class="n">this_record</span><span class="p">,</span> <span class="s">&quot;answer&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_answer</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
             <span class="cm">/* Get each RR in the answer section */</span>
             <span class="kt">size_t</span> <span class="n">num_rrs</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_length</span><span class="p">(</span><span class="n">this_answer</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">num_rrs</span><span class="p">);</span>
             <span class="k">for</span> <span class="p">(</span> <span class="kt">size_t</span> <span class="n">rr_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">rr_count</span> <span class="o">&lt;</span> <span class="n">num_rrs</span><span class="p">;</span> <span class="o">++</span><span class="n">rr_count</span> <span class="p">)</span>
             <span class="p">{</span>
-                <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_rr</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+                <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_rr</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
                 <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_dict</span><span class="p">(</span><span class="n">this_answer</span><span class="p">,</span> <span class="n">rr_count</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_rr</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
                 <span class="cm">/* Get the RDATA */</span>
-                <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_rdata</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+                <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_rdata</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
                 <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_dict</span><span class="p">(</span><span class="n">this_rr</span><span class="p">,</span> <span class="s">&quot;rdata&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_rdata</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
                 <span class="cm">/* Get the RDATA type */</span>
                 <span class="kt">uint32_t</span> <span class="n">this_type</span><span class="p">;</span>
@@ -1657,7 +1657,7 @@ their TTLs.</p>
                 <span class="cm">/* If it is type A or AAAA, print the value */</span>
                 <span class="k">if</span> <span class="p">(</span><span class="n">this_type</span> <span class="o">==</span> <span class="n">GETDNS_RRTYPE_A</span><span class="p">)</span>
                 <span class="p">{</span>
-                    <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_a_record</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+                    <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_a_record</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
                     <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_bindata</span><span class="p">(</span><span class="n">this_rdata</span><span class="p">,</span> <span class="s">&quot;ipv4_address&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_a_record</span><span class="p">);</span>
                     <span class="k">if</span> <span class="p">(</span><span class="n">this_ret</span> <span class="o">==</span> <span class="n">GETDNS_RETURN_NO_SUCH_DICT_NAME</span><span class="p">)</span>
                     <span class="p">{</span>
@@ -1672,7 +1672,7 @@ their TTLs.</p>
                 <span class="p">}</span>
                 <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">this_type</span> <span class="o">==</span> <span class="n">GETDNS_RRTYPE_AAAA</span><span class="p">)</span>
                 <span class="p">{</span>
-                    <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_aaaa_record</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+                    <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_aaaa_record</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
                     <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_bindata</span><span class="p">(</span><span class="n">this_rdata</span><span class="p">,</span> <span class="s">&quot;ipv6_address&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_aaaa_record</span><span class="p">);</span>
                     <span class="k">if</span> <span class="p">(</span><span class="n">this_ret</span> <span class="o">==</span> <span class="n">GETDNS_RETURN_NO_SUCH_DICT_NAME</span><span class="p">)</span>
                     <span class="p">{</span>
@@ -1698,7 +1698,7 @@ their TTLs.</p>
 <span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
 <span class="p">{</span>
     <span class="cm">/* Create the DNS context for this call */</span>
-    <span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+    <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
     <span class="kt">getdns_return_t</span> <span class="n">context_create_return</span> <span class="o">=</span> <span class="n">getdns_context_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">this_context</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
     <span class="k">if</span> <span class="p">(</span><span class="n">context_create_return</span> <span class="o">!=</span> <span class="n">GETDNS_RETURN_GOOD</span><span class="p">)</span>
     <span class="p">{</span>
@@ -1755,7 +1755,7 @@ callback function, add a check for the DNSSEC status. It shows how to add two
 extensions to the <code>extensions</code> argument of the call.</p>
 
 <pre>
-struct getdns_dict * this_extensions = getdns_dict_create();
+getdns_dict * this_extensions = getdns_dict_create();
 this_ret = getdns_dict_set_int(this_extensions, "return_both_v4_and_v6", GETDNS_EXTENSION_TRUE);
 this_ret = getdns_dict_set_int(this_extensions, "dnssec_return_status", GETDNS_EXTENSION_TRUE);
 . . .
@@ -1795,7 +1795,7 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
 <span class="p">{</span>
     <span class="kt">getdns_return_t</span> <span class="n">this_ret</span><span class="p">;</span>  <span class="cm">/* Holder for all function returns */</span>
     <span class="cm">/* Create the DNS context for this call */</span>
-    <span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+    <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
     <span class="kt">getdns_return_t</span> <span class="n">context_create_return</span> <span class="o">=</span> <span class="n">getdns_context_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">this_context</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
     <span class="k">if</span> <span class="p">(</span><span class="n">context_create_return</span> <span class="o">!=</span> <span class="n">GETDNS_RETURN_GOOD</span><span class="p">)</span>
     <span class="p">{</span>
@@ -1806,7 +1806,7 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
     <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">this_name</span>  <span class="o">=</span> <span class="s">&quot;www.example.com&quot;</span><span class="p">;</span>
     <span class="kt">uint8_t</span> <span class="n">this_request_type</span> <span class="o">=</span> <span class="n">GETDNS_RRTYPE_A</span><span class="p">;</span>
     <span class="cm">/* Get the A and AAAA records */</span>
-    <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_extensions</span> <span class="o">=</span> <span class="n">getdns_dict_create</span><span class="p">();</span>
+    <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_extensions</span> <span class="o">=</span> <span class="n">getdns_dict_create</span><span class="p">();</span>
     <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_set_int</span><span class="p">(</span><span class="n">this_extensions</span><span class="p">,</span> <span class="s">&quot;return_both_v4_and_v6&quot;</span><span class="p">,</span> <span class="n">GETDNS_EXTENSION_TRUE</span><span class="p">);</span>
     <span class="k">if</span> <span class="p">(</span><span class="n">this_ret</span> <span class="o">!=</span> <span class="n">GETDNS_RETURN_GOOD</span><span class="p">)</span>
     <span class="p">{</span>
@@ -1815,7 +1815,7 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
         <span class="n">getdns_context_destroy</span><span class="p">(</span><span class="n">this_context</span><span class="p">);</span>
         <span class="k">return</span><span class="p">(</span><span class="n">GETDNS_RETURN_GENERIC_ERROR</span><span class="p">);</span>
     <span class="p">}</span>
-    <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_response</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+    <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_response</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
 
     <span class="cm">/* Make the call */</span>
     <span class="kt">getdns_return_t</span> <span class="n">dns_request_return</span> <span class="o">=</span> <span class="n">getdns_general_sync</span><span class="p">(</span><span class="n">this_context</span><span class="p">,</span> <span class="n">this_name</span><span class="p">,</span> <span class="n">this_request_type</span><span class="p">,</span>
@@ -1841,17 +1841,17 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
             <span class="n">getdns_context_destroy</span><span class="p">(</span><span class="n">this_context</span><span class="p">);</span>
             <span class="k">return</span><span class="p">(</span><span class="n">GETDNS_RETURN_GENERIC_ERROR</span><span class="p">);</span>
         <span class="p">}</span>
-        <span class="k">struct</span> <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">just_the_addresses_ptr</span><span class="p">;</span>
+        <span class="n">getdns_list</span> <span class="o">*</span> <span class="n">just_the_addresses_ptr</span><span class="p">;</span>
         <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_list</span><span class="p">(</span><span class="n">this_response</span><span class="p">,</span> <span class="s">&quot;just_address_answers&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">just_the_addresses_ptr</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
         <span class="kt">size_t</span> <span class="n">num_addresses</span><span class="p">;</span>
         <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_length</span><span class="p">(</span><span class="n">just_the_addresses_ptr</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">num_addresses</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
         <span class="cm">/* Go through each record */</span>
         <span class="k">for</span> <span class="p">(</span> <span class="kt">size_t</span> <span class="n">rec_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">rec_count</span> <span class="o">&lt;</span> <span class="n">num_addresses</span><span class="p">;</span> <span class="o">++</span><span class="n">rec_count</span> <span class="p">)</span>
         <span class="p">{</span>
-            <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_address</span><span class="p">;</span>
+            <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_address</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_dict</span><span class="p">(</span><span class="n">just_the_addresses_ptr</span><span class="p">,</span> <span class="n">rec_count</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_address</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
             <span class="cm">/* Just print the address */</span>
-            <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_address_data</span><span class="p">;</span>
+            <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_address_data</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_bindata</span><span class="p">(</span><span class="n">this_address</span><span class="p">,</span> <span class="s">&quot;address_data&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_address_data</span><span class="p">);</span> <span class="c1">// Ignore any error</span>
             <span class="kt">char</span> <span class="o">*</span><span class="n">this_address_str</span> <span class="o">=</span> <span class="n">getdns_display_ip_address</span><span class="p">(</span><span class="n">this_address_data</span><span class="p">);</span>
             <span class="n">printf</span><span class="p">(</span><span class="s">&quot;The address is %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">this_address_str</span><span class="p">);</span>
@@ -1883,9 +1883,9 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
 <span class="cp">#define UNUSED_PARAM(x) ((void)(x))</span>
 
 <span class="cm">/* Set up the callback function, which will also do the processing of the results */</span>
-<span class="kt">void</span> <span class="nf">this_callbackfn</span><span class="p">(</span><span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span><span class="p">,</span>
+<span class="kt">void</span> <span class="nf">this_callbackfn</span><span class="p">(</span><span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span><span class="p">,</span>
                      <span class="kt">uint16_t</span>     <span class="n">this_callback_type</span><span class="p">,</span>
-                     <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_response</span><span class="p">,</span> 
+                     <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_response</span><span class="p">,</span> 
                      <span class="kt">void</span> <span class="o">*</span><span class="n">this_userarg</span><span class="p">,</span>
                      <span class="kt">getdns_transaction_t</span> <span class="n">this_transaction_id</span><span class="p">)</span>
 <span class="p">{</span>
@@ -1904,34 +1904,34 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
             <span class="n">getdns_dict_destroy</span><span class="p">(</span><span class="n">this_response</span><span class="p">);</span>
             <span class="k">return</span><span class="p">;</span>
         <span class="p">}</span>
-        <span class="k">struct</span> <span class="n">getdns_list</span> <span class="o">*</span><span class="n">replies_tree</span><span class="p">;</span>
+        <span class="n">getdns_list</span> <span class="o">*</span><span class="n">replies_tree</span><span class="p">;</span>
         <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_list</span><span class="p">(</span><span class="n">this_response</span><span class="p">,</span> <span class="s">&quot;replies_tree&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">replies_tree</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
         <span class="kt">size_t</span> <span class="n">num_replies</span><span class="p">;</span>
         <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_length</span><span class="p">(</span><span class="n">replies_tree</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">num_replies</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
         <span class="cm">/* Go through each reply */</span>
         <span class="k">for</span> <span class="p">(</span> <span class="kt">size_t</span> <span class="n">reply_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">reply_count</span> <span class="o">&lt;</span> <span class="n">num_replies</span><span class="p">;</span> <span class="o">++</span><span class="n">reply_count</span><span class="p">)</span>
         <span class="p">{</span>
-            <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_reply</span><span class="p">;</span>
+            <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_reply</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_dict</span><span class="p">(</span><span class="n">replies_tree</span><span class="p">,</span> <span class="n">reply_count</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_reply</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
             <span class="cm">/* Just print the address */</span>
-            <span class="k">struct</span> <span class="n">getdns_list</span><span class="o">*</span> <span class="n">reply_answers</span><span class="p">;</span>
+            <span class="n">getdns_list</span><span class="o">*</span> <span class="n">reply_answers</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_list</span><span class="p">(</span><span class="n">this_reply</span><span class="p">,</span> <span class="s">&quot;answer&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">reply_answers</span><span class="p">);</span> <span class="c1">// Ignore any error</span>
             <span class="kt">size_t</span> <span class="n">num_answers</span><span class="p">;</span>
             <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_length</span><span class="p">(</span><span class="n">reply_answers</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">num_answers</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
             <span class="cm">/* Go through each answer */</span>
             <span class="k">for</span> <span class="p">(</span> <span class="kt">size_t</span> <span class="n">answer_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">answer_count</span> <span class="o">&lt;</span> <span class="n">num_answers</span><span class="p">;</span> <span class="o">++</span><span class="n">answer_count</span><span class="p">)</span>
             <span class="p">{</span>
-                <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_rr</span><span class="p">;</span>
+                <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_rr</span><span class="p">;</span>
                 <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_list_get_dict</span><span class="p">(</span><span class="n">reply_answers</span><span class="p">,</span> <span class="n">answer_count</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_rr</span><span class="p">);</span>
                 <span class="cm">/* Get the RDATA type */</span>
                 <span class="kt">uint32_t</span> <span class="n">this_type</span><span class="p">;</span>
                 <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_int</span><span class="p">(</span><span class="n">this_rr</span><span class="p">,</span> <span class="s">&quot;type&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_type</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
                 <span class="k">if</span> <span class="p">(</span><span class="n">this_type</span> <span class="o">==</span> <span class="n">GETDNS_RRTYPE_PTR</span><span class="p">)</span>
                 <span class="p">{</span>
-                    <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_rdata</span><span class="p">;</span>
+                    <span class="n">getdns_dict</span> <span class="o">*</span><span class="n">this_rdata</span><span class="p">;</span>
                     <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_dict</span><span class="p">(</span><span class="n">this_rr</span><span class="p">,</span> <span class="s">&quot;rdata&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_rdata</span><span class="p">);</span>  <span class="c1">// Ignore any error</span>
 
-                    <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_dname</span><span class="p">;</span>
+                    <span class="n">getdns_bindata</span> <span class="o">*</span> <span class="n">this_dname</span><span class="p">;</span>
                     <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_get_bindata</span><span class="p">(</span><span class="n">this_rdata</span><span class="p">,</span> <span class="s">&quot;rdata_raw&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_dname</span><span class="p">);</span>
                     <span class="kt">char</span> <span class="o">*</span><span class="n">this_dname_str</span> <span class="o">=</span> <span class="n">getdns_convert_dns_name_to_fqdn</span><span class="p">((</span><span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">this_dname</span><span class="o">-&gt;</span><span class="n">data</span><span class="p">);</span>
                     <span class="n">printf</span><span class="p">(</span><span class="s">&quot;The dname is %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">this_dname_str</span><span class="p">);</span>
@@ -1952,7 +1952,7 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
 <span class="kt">int</span> <span class="nf">main</span><span class="p">()</span>
 <span class="p">{</span>
     <span class="cm">/* Create the DNS context for this call */</span>
-    <span class="k">struct</span> <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+    <span class="n">getdns_context</span> <span class="o">*</span><span class="n">this_context</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
     <span class="kt">getdns_return_t</span> <span class="n">context_create_return</span> <span class="o">=</span> <span class="n">getdns_context_create</span><span class="p">(</span><span class="o">&amp;</span><span class="n">this_context</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
     <span class="k">if</span> <span class="p">(</span><span class="n">context_create_return</span> <span class="o">!=</span> <span class="n">GETDNS_RETURN_GOOD</span><span class="p">)</span>
     <span class="p">{</span>
@@ -1970,12 +1970,12 @@ as it is for the synchronous example, it is just done in <code>main()</code>.</p
     <span class="p">}</span>
     <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">getdns_extension_set_libevent_base</span><span class="p">(</span><span class="n">this_context</span><span class="p">,</span> <span class="n">this_event_base</span><span class="p">);</span>
     <span class="cm">/* Set up the getdns call */</span>
-    <span class="k">struct</span> <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_addr_to_look_up</span> <span class="o">=</span> <span class="n">getdns_dict_create</span><span class="p">();</span>
+    <span class="n">getdns_dict</span> <span class="o">*</span> <span class="n">this_addr_to_look_up</span> <span class="o">=</span> <span class="n">getdns_dict_create</span><span class="p">();</span>
     <span class="c1">// TODO: check the return value above</span>
-    <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="n">this_type</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="s">&quot;IPv4&quot;</span> <span class="p">};</span>
+    <span class="n">getdns_bindata</span> <span class="n">this_type</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="s">&quot;IPv4&quot;</span> <span class="p">};</span>
     <span class="kt">getdns_return_t</span> <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_set_bindata</span><span class="p">(</span><span class="n">this_addr_to_look_up</span><span class="p">,</span> <span class="s">&quot;address_type&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_type</span><span class="p">);</span>
     <span class="n">UNUSED_PARAM</span><span class="p">(</span><span class="n">this_ret</span><span class="p">);</span>
-    <span class="k">struct</span> <span class="n">getdns_bindata</span> <span class="n">this_ipv4_addr</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="s">&quot;</span><span class="se">\x08\x08\x08\x08</span><span class="s">&quot;</span> <span class="p">};</span>
+    <span class="n">getdns_bindata</span> <span class="n">this_ipv4_addr</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="s">&quot;</span><span class="se">\x08\x08\x08\x08</span><span class="s">&quot;</span> <span class="p">};</span>
     <span class="n">this_ret</span> <span class="o">=</span> <span class="n">getdns_dict_set_bindata</span><span class="p">(</span><span class="n">this_addr_to_look_up</span><span class="p">,</span> <span class="s">&quot;address_data&quot;</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">this_ipv4_addr</span><span class="p">);</span>
     <span class="kt">char</span><span class="o">*</span> <span class="n">this_userarg</span> <span class="o">=</span> <span class="s">&quot;somestring&quot;</span><span class="p">;</span> <span class="c1">// Could add things here to help identify this call</span>
     <span class="kt">getdns_transaction_t</span> <span class="n">this_transaction_id</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
@@ -2032,9 +2032,9 @@ getdns_convert_alabel_to_ulabel(
 can use the <code>getdns_validate_dnssec()</code> helper function.</p>
 <div class=forh>getdns_return_t
 getdns_validate_dnssec(
-  struct getdns_list     *record_to_validate,
-  struct getdns_list     *bundle_of_support_records,
-  struct getdns_list     *trust_anchor_rdatas
+  getdns_list     *record_to_validate,
+  getdns_list     *bundle_of_support_records,
+  getdns_list     *trust_anchor_records
 );
 </div>
 <p class=cont>
@@ -2048,7 +2048,7 @@ The function returns one of <code>GETDNS_DNSSEC_SECURE</code>, <code>GETDNS_DNSS
 <div class=forh>
 char *
 getdns_pretty_print_dict(
-  const struct getdns_dict     *some_dict
+  const getdns_dict  *some_dict
 );
 </div>
 <p class=cont>This returns a string that is the nicely-formatted version
@@ -2057,7 +2057,7 @@ of the dict and all of the named elements in it.</p>
 <div class=forh>
 char *
 getdns_display_ip_address(
-  const struct getdns_bindata        *bindata_of_ipv4_or_ipv6_address
+  const getdns_bindata  *bindata_of_ipv4_or_ipv6_address
 );
 </div>
 <p class=cont>This returns a string that is the nicely-formatted version
@@ -2125,8 +2125,8 @@ success or <code>GETDNS_RETURN_CONTEXT_UPDATE_FAIL</code> for a failure to updat
 <div class=forh>
 getdns_return_t
 getdns_context_set_context_update_callback(
-  struct getdns_context  *context,
-  void                   (*value)(struct getdns_context *context, getdns_context_code_t changed_item)
+  getdns_context  *context,
+  void            (*value)(getdns_context *context, getdns_context_code_t changed_item)
 );</div>
 <p class=cont>The value is a pointer to the callback function that will be
 called when any context is changed. Such changes might be from automatic
@@ -2141,8 +2141,8 @@ specifies which of the context changed; the context codes are listed
 <div class=forh>
 getdns_return_t
 getdns_context_set_resolution_type(
-  struct getdns_context  *context,
-  getdns_resolution_t    value
+  getdns_context       *context,
+  getdns_resolution_t  value
 );</div>
 <p class=cont>Specifies whether DNS queries are performed with nonrecurive lookups or
 as a stub resolver. The value is <span class=default><code>GETDNS_RESOLUTION_RECURSING</code></span> or
@@ -2159,9 +2159,9 @@ return <code>GETDNS_RETURN_CONTEXT_UPDATE_FAIL</code>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_namespaces(
-  struct getdns_context  *context,
-  size_t                 namespace_count,
-  getdns_namespace_t     *namespaces
+  getdns_context      *context,
+  size_t              namespace_count,
+  getdns_namespace_t  *namespaces
 );</div>
 <p class=cont>The <code>namespaces</code> array contains an ordered list
 of namespaces that will be queried.
@@ -2184,8 +2184,8 @@ default is <span class=default>determined by the OS</span>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_dns_transport(
-  struct getdns_context  *context,
-  getdns_transport_t     value
+  getdns_context      *context,
+  getdns_transport_t  value
 );</div>
 <p class=cont>Specifies what transport is used for DNS lookups.
 The value is <span class=default>
@@ -2197,8 +2197,8 @@ The value is <span class=default>
 <div class=forh>
 getdns_return_t
 getdns_context_set_limit_outstanding_queries(
-  struct getdns_context  *context,
-  uint16_t               limit
+  getdns_context  *context,
+  uint16_t        limit
 );</div>
 <p class=cont>Specifies limit the number of outstanding DNS queries.
 The API will block itself from sending more queries if it is about to exceed
@@ -2209,8 +2209,8 @@ the number of outstanding DNS queries is unlimited.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_timeout(
-  struct getdns_context  *context,
-  uint64_t               timeout
+  getdns_context  *context,
+  uint64_t        timeout
 );</div>
 <p class=cont>Specifies number of milliseconds the API will wait for request to return.
 The default is <span class=default>not specified</span>.</p>
@@ -2220,8 +2220,8 @@ The default is <span class=default>not specified</span>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_follow_redirects(
-  struct getdns_context  *context,
-  getdns_redirects_t     value
+  getdns_context      *context,
+  getdns_redirects_t  value
 );</div>
 <p class=cont>Specifies whether or not DNS queries follow redirects.
 The value is <span class=default><code>GETDNS_REDIRECTS_FOLLOW</code></span> for normal
@@ -2232,8 +2232,8 @@ through CNAME and DNAME to return the CNAME or DNAME, not the eventual target.</
 <div class=forh>
 getdns_return_t
 getdns_context_set_dns_root_servers(
-  struct getdns_context  *context,
-  struct getdns_list     *addresses
+  getdns_context  *context,
+  getdns_list     *addresses
 );</div>
 <p class=cont>The list contains dicts that are addresses to be used for looking up top-level
 domains; the default is the list of <b>"normal" IANA root servers</b>. Each dict in the list
@@ -2245,8 +2245,8 @@ either "IPv4" or "IPv6") and <code>address_data</code> (whose value is a bindata
 <div class=forh>
 getdns_return_t
 getdns_context_set_append_name(
-  struct getdns_context  *context,
-  getdns_append_name_t   value
+  getdns_context        *context,
+  getdns_append_name_t  value
 );</div>
 <p class=cont>Specifies whether to append a suffix to the query string
 before the API starts resolving a name.
@@ -2260,8 +2260,8 @@ whether or not to append the suffix given by <code>getdns_context_set_suffix</co
 <div class=forh>
 getdns_return_t
 getdns_context_set_suffix(
-  struct getdns_context  *context,
-  struct getdns_list     *value
+  getdns_context  *context,
+  getdns_list     *value
 );</div>
 <p class=cont>The value is a list of bindatas that are strings that are
 to be appended based on <code>getdns_context_set_append_name</code>; the default is an <span
@@ -2276,8 +2276,8 @@ to allow non-ASCII octets and special characters in labels.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_dnssec_trust_anchors(
-  struct getdns_context  *context,
-  struct getdns_list     *value
+  getdns_context  *context,
+  getdns_list     *value
 );</div>
 <p class=cont>The value is a list of bindatas that are the DNSSEC trust anchors. The default
 is the trust anchors from the <span class=default>IANA root</span>. The trust anchors
@@ -2287,8 +2287,8 @@ are expressed as RDATAs from DNSKEY resource records.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_dnssec_allowed_skew(
-  struct getdns_context  *context,
-  uint32_t               value
+  getdns_context  *context,
+  uint32_t        value
 );</div>
 <p class=cont>The value is the number of seconds of skew that is allowed in either direction when
 checking an RRSIG's Expiration and Inception fields. The default
@@ -2307,8 +2307,8 @@ must do its own DNSSEC processing, possibly with the <code>getdns_validate_dnsse
 <div class=forh>
 getdns_return_t
 getdns_context_set_upstream_recursive_servers(
-  struct getdns_context  *context,
-  struct getdns_list     *upstream_list
+  getdns_context  *context,
+  getdns_list     *upstream_list
 );</div>
 <p class=cont>The list of dicts define where a stub resolver will send queries. Each dict contains
 at least two names: <code>address_type</code> (whose value is a bindata; it is currently either
@@ -2326,8 +2326,8 @@ These come from RFC 2671.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_edns_maximum_udp_payload_size(
-  struct getdns_context  *context,
-  uint16_t               value
+  getdns_context  *context,
+  uint16_t        value
 );</div>
 <p class=cont>The value is between 512 and 65535; the default
 is <span class=default>512</span>.</p>
@@ -2335,8 +2335,8 @@ is <span class=default>512</span>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_edns_extended_rcode(
-  struct getdns_context  *context,
-  uint8_t                value
+  getdns_context  *context,
+  uint8_t         value
 );</div>
 <p class=cont>The value is between 0 and 255; the default
 is <span class=default>0</span>.</p>
@@ -2344,8 +2344,8 @@ is <span class=default>0</span>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_edns_version(
-  struct getdns_context  *context,
-  uint8_t                value
+  getdns_context  *context,
+  uint8_t         value
 );</div>
 <p class=cont>The value is between 0 and 255; the default
 is <span class=default>0</span>.</p>
@@ -2353,8 +2353,8 @@ is <span class=default>0</span>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_edns_do_bit(
-  struct getdns_context  *context,
-  uint8_t                value
+  getdns_context  *context,
+  uint8_t         value
 );</div>
 <p class=cont>The value is between 0 and 1; the default
 is <span class=default>0</span>.</p>
@@ -2364,10 +2364,10 @@ is <span class=default>0</span>.</p>
 <div class=forh>
 getdns_return_t
 getdns_context_set_memory_functions(
-  struct getdns_context *context,
-  void                  *(*malloc) (size_t),
-  void                  *(*realloc) (void *, size_t),
-  void                  (*free) (void *)
+  getdns_context *context,
+  void           *(*malloc) (size_t),
+  void           *(*realloc) (void *, size_t),
+  void           (*free) (void *)
 );</div>
 <p class=cont>The given memory management functions will be used for creating the response dicts.
 The response dicts inherit the custom memory management functions from the context and will deallocate themselves (and their members) with the custom deallocator.
@@ -2376,11 +2376,11 @@ By default, the system <span class=default>malloc</span>, <span class=default>re
 <div class=forh>
 getdns_return_t
 getdns_context_set_extended_memory_functions(
-  struct getdns_context *context,
-  void                  *userarg,
-  void                  *(*malloc)(void *userarg, size_t sz),
-  void                  *(*realloc)(void *userarg, void *ptr, size_t sz),
-  void                  (*free)(void *userarg, void *ptr)
+  getdns_context *context,
+  void           *userarg,
+  void           *(*malloc)(void *userarg, size_t sz),
+  void           *(*realloc)(void *userarg, void *ptr, size_t sz),
+  void           (*free)(void *userarg, void *ptr)
 );</div>
 <p class=cont>The given extended memory management functions will be used for creating the response dicts.
 The value of <code>userarg</code> argument will be passed to the custom <code>malloc</code>, <code>realloc</code>, and <code>free</code>.
@@ -2428,7 +2428,7 @@ The response dicts inherit the custom memory management functions and the value
 
 <h1>9. The Generated Files</h1>
 
-<p>There is <a href="getdns-0.399.tgz">a tarball</a> that includes the .h files,
+<p>There is <a href="getdns-0.400.tgz">a tarball</a> that includes the .h files,
 the examples, and so on. The examples all make, even though there is no API implementation, based
 on a pseudo-implementation in the tarball; see make-examples-PLATFORM.sh. Note that this currently builds fine
 on the Macintosh and Ubuntu; help is definitely appreciated on making the build process