MINOR: dns: enabled edns0 extension and make accpeted payload size tunable

Edns extensions may be used to negotiate some settings between a DNS
client and a server.
For now we only use it to announce the maximum response payload size accpeted
by HAProxy.
This size can be set through a configuration parameter in the resolvers
section. If not set, it defaults to 512 bytes.
diff --git a/include/types/dns.h b/include/types/dns.h
index 9bf3c7e..0f9c1b9 100644
--- a/include/types/dns.h
+++ b/include/types/dns.h
@@ -113,6 +113,20 @@
 };
 
 /* NOTE: big endian structure */
+struct dns_additional_record {
+	uint8_t name;                           /* domain name, must be 0 (RFC 6891) */
+	uint16_t type;			/* record type DNS_RTYPE_OPT (41) */
+	uint16_t udp_payload_size;	/* maximum size accepted for the response */
+	uint32_t extension;				/* extended rcode and flags, not used for now */
+	uint16_t data_length;		/* data length */
+/* as of today, we don't support yet edns options, that said I already put a placeholder here
+ * for this purpose. We may need to define a dns_option_record structure which itself should
+ * point to different type of data, based on the extension set (client subnet, tcp keepalive,
+ * etc...)*/
+//	struct list options;			/* list of option records */
+} __attribute__ ((packed));
+
+/* NOTE: big endian structure */
 struct dns_answer_item {
 	struct list list;
 	char name[DNS_MAX_NAME_SIZE];		/* answer name
@@ -150,6 +164,7 @@
 		int line;		/* line where the section appears */
 	} conf;				/* config information */
 	struct list nameserver_list;	/* dns server list */
+	unsigned int accepted_payload_size;	/* maximum payload size we accept for responses */
 	int count_nameservers;			/* total number of nameservers in a resolvers section */
 	int resolve_retries;		/* number of retries before giving up */
 	struct {			/* time to: */