]> jfr.im git - irc/quakenet/snircd.git/blobdiff - include/res.h
import of 2.10.12.07
[irc/quakenet/snircd.git] / include / res.h
index 6e8e3a5fbe1283f41ef960abea5fa93f61d518d3..0dd6181c7a4ab46886326ed6eb4f724b4f7762b5 100644 (file)
@@ -1,6 +1,6 @@
 /** @file
  * @brief IRC resolver API.
- * @version $Id: res.h,v 1.17 2005/06/27 13:25:51 entrope Exp $
+ * @version $Id: res.h,v 1.17.2.2 2006/03/14 03:45:52 entrope Exp $
  */
 
 #ifndef INCLUDED_res_h
@@ -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. */
@@ -115,6 +116,16 @@ extern void report_dns_servers(struct Client *source_p, const struct StatDesc *s
 extern void gethost_byname(const char *name, dns_callback_f callback, void *ctx);
 extern void gethost_byaddr(const struct irc_in_addr *addr, dns_callback_f callback, void *ctx);
 
+/** Evaluate to non-zero if \a ADDR is an unspecified (all zeros) address. */
+#define irc_in_addr_unspec(ADDR) (((ADDR)->in6_16[0] == 0) \
+                                  && ((ADDR)->in6_16[1] == 0) \
+                                  && ((ADDR)->in6_16[2] == 0) \
+                                  && ((ADDR)->in6_16[3] == 0) \
+                                  && ((ADDR)->in6_16[4] == 0) \
+                                  && ((ADDR)->in6_16[6] == 0) \
+                                  && ((ADDR)->in6_16[7] == 0) \
+                                  && ((ADDR)->in6_16[5] == 0 \
+                                      || (ADDR)->in6_16[5] == 65535))
 /** Evaluate to non-zero if \a ADDR is a valid address (not all 0s and not all 1s). */
 #define irc_in_addr_valid(ADDR) (((ADDR)->in6_16[0] && ~(ADDR)->in6_16[0]) \
                                  || (ADDR)->in6_16[1] != (ADDR)->in6_16[0] \