Handle NXDOMAIN DNS errors.
authorMichael Poole <mdpoole@troilus.org>
Thu, 16 Feb 2006 04:04:25 +0000 (04:04 +0000)
committerMichael Poole <mdpoole@troilus.org>
Thu, 16 Feb 2006 04:04:25 +0000 (04:04 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1621 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
include/res.h
ircd/ircd_res.c
tools/iauth-test

index 8e6a0fdf77bdcfac34c469f71b538773919e9aae..4183937a562f17478a71f611f5fcc47eca0b5ebe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-02-15  Michael Poole <mdpoole@troilus.org>
+
+       * include/res.h (NXDOMAIN): Define.
+
+       * ircd/ircd_res.c (res_readreply): Treat NXDOMAIN just like
+       SERVFAIL.  Patch courtesy of Dianora.
+
+       * tools/iauth-test (Carp): This doesn't actually use Carp.
+
 2006-02-15  Michael Poole <mdpoole@troilus.org>
 
        * doc/example.conf: Include new HIS_STATS_IAUTH feature.
index beb1e4bcb30f9895b1760c7d5b095d59ade3baf1..50f93245daca7e30d470c2e539cd556095598e93 100644 (file)
@@ -45,6 +45,7 @@ struct StatDesc;
 #define QUERY 0      /**< Forward (normal) DNS query operation. */
 #define NO_ERRORS 0  /**< No errors processing a query. */
 #define SERVFAIL 2   /**< Server error while processing a query. */
+#define NXDOMAIN 3   /**< Domain name in query does not exist. */
 #define T_A 1        /**< Hostname -> IPv4 query type. */
 #define T_AAAA 28    /**< Hostname -> IPv6 query type. */
 #define T_PTR 12     /**< IP(v4 or v6) -> hostname query type. */
index 52d6865e103b424e093d7e98b85a8e5adfcf1307..02ca4e47ddd6ccfc7134aae1e55431295badbbc5 100644 (file)
@@ -784,7 +784,7 @@ res_readreply(struct Event *ev)
 
   if ((header->rcode != NO_ERRORS) || (header->ancount == 0))
   {
-    if (SERVFAIL == header->rcode)
+    if (SERVFAIL == header->rcode || NXDOMAIN == header->rcode)
     {
         /*
          * If a bad error was returned, we stop here and don't send
index 2629b5285f470eb1bccad383b02132e426eb63b2..591e9f6a7d9617bde8a80943080481387340ad40 100755 (executable)
@@ -11,7 +11,6 @@ use strict;
 use warnings;
 use vars qw(%pending);
 
-use Carp;       # for carp
 use Config;     # for $Config{sig_name} and $Config{sig_num}
 use FileHandle; # for autoflush method on file handles