Added dns_use_edns0 main option.
[exim.git] / src / src / dns.c
index 9d4da4ae1e99d9837f28291a2766ee30a1386246..bfef69927649313d01bf45c234f8a7918aa61205 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/dns.c,v 1.20 2009/11/11 10:08:01 nm4 Exp $ */
+/* $Cambridge: exim/src/src/dns.c,v 1.21 2009/11/16 19:50:36 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2007 */
+/* Copyright (c) University of Cambridge 1995 - 2009 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* Functions for interfacing with the DNS. */
@@ -180,6 +180,24 @@ _res.options |= (qualify_single? RES_DEFNAMES : 0) |
                 (search_parents? RES_DNSRCH : 0);
 if (dns_retrans > 0) _res.retrans = dns_retrans;
 if (dns_retry > 0) _res.retry = dns_retry;
+
+#ifdef RES_USE_EDNS0
+if (dns_use_edns0 >= 0)
+  {
+  if (dns_use_edns0)
+    _res.options |= RES_USE_EDNS0;
+  else
+    _res.options &= ~RES_USE_EDNS0;
+  DEBUG(D_resolver)
+    debug_printf("Coerced resolver EDNS0 support %s.\n",
+        dns_use_edns0 ? "on" : "off");
+  }
+#else
+if (dns_use_edns0 >= 0)
+  DEBUG(D_resolver)
+    debug_printf("Unable to %sset EDNS0 without resolver support.\n",
+        dns_use_edns0 ? "" : "un");
+#endif
 }